更改Windows XP默认“复制此处”的任何选项,均从“ {name}。{ext}的副本”命名为“ {name}。{ext} .copy”


9

是否有选项或工具可让我更改复制到Windows(XP)及更高版本中同一目录中的文件的默认命名约定。

例如,从:{name}。{ext}的副本到:{name}。{ext} .copy的副本

目前:

original_file.php
Copy of original_file.php

期望的:

original_file.php
original_file.php.copy

这将使查找/处理重复的文件变得更加容易(它们自动排序在一起),并且文件类型(按扩展名)发生更改,因此它不会意外地“破坏”某些内容(例如,如果它是* .java文件,则在编译时我会得到错误)


Notepad ++的变通方法:如果仅处理包含文本的文件(如以上结尾的PHP所示),则可以将Notepad ++与它的自动保存功能一起使用。请参阅>设置>首选项>选项卡“备份/自动完成”仅对1个备份文件使用“简单备份”,对于要获取时间戳的单独文件夹使用“详细备份”。还要检查插件自动保存,这可能是您想要的。
Kai Noack 2014年

Answers:


9

如果我理解正确,您想在同一目录中创建文件的副本。我创建了一个.cmd文件,可通过“发送到”菜单执行此操作。如果name.ext.copy文件已经存在,它将创建:

  • name.ext.copy2
  • name.ext.copy3
  • 等等...

安装

  1. 转到Start > Run...菜单,然后输入“ sendto”或“ shell:sendto”。
  2. 在弹出的窗口中,创建一个新的文本文件。
  3. 在记事本中打开新文件。
  4. 粘贴在下面的文本中。
  5. 将文本文件重命名为“ Copy of.cmd”(带引号)。

使用

  1. 选择一个或一组文件。
  2. 右键单击文件。
  3. 选择Send To...> Copy of.cmd选项。

.cmd的副本

for %%f in (%*) do call :try_copy %%f
goto :eof

:try_copy
if not exist "%~1.copy%2" goto :copy
call :try_next %1 %2
goto :eof

:copy
copy %1 "%~1.copy%2"
goto :eof

:try_next
if "%2" == "" ( set _next=2 ) else ( set /a _next=%2 + 1 )
call :try_copy %1 %_next%
goto :eof

谢谢@kskfisher!看起来这将是一个很好的解决方法(应该没有默认方法)。;-)
scunliffe

0

所以我已经解决了:

for %%f in (%*) do call :try_copy %%f
goto :eof

:try_copy
if not exist "%~d1%~p1%~n1{copy%2}%~x1" goto :copy
call :try_next %1 %2
goto :eof
:copy
if "%2" == "" call :try_next %1 %2
copy %1 "%~d1%~p1%~n1{copy%2}%~x1"
exit

:try_next
set /a _next=%2 + 1
call :try_copy %1 %_next%
goto :eof

我猜您发布的路径问题源于您如何创建contextmenu条目,因为我没有这个问题。

[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\AllF01]
 @="C&@py"

[HKEY_CLASSES_ROOT\*\shell\AllF01\command]
 @="C:\\AEdNs\\nCodIP\\nCodIU\\Copy.cmd \"%1\""

我不使用MS Windows资源管理器。我使用各种便携式/免费文件管理器。

所有(除了一个)都有一个问题,就是原始脚本会将文件复制到免费文件管理器的根目录“安装”目录中,因此我添加%~d1%~p1了将原始文件的drive \ path放在输出文件中的问题...

我出于各种原因以各种方式调整了代码,并通过XP上下文菜单而非SendTo在任何选定文件上启动了代码。


感谢@AEN-只是想知道如何将其“安装”为它自己的上下文菜单项而不是“发送到”菜单的子项?
scunliffe 2011年

1
实际上,我确实设法编辑了注册表并将此选项添加到上下文菜单中……但是我认为它试图在我的* .cmd文件所在的目录中而不是所选文件的目录中创建副本/搜索。我从这里使用注册表设置(已调整):superuser.com/questions/65105/…添加上下文项。
scunliffe 2011年

AEN,您应该在该网站上注册,或尝试保留您的cookie,否则您将无法编辑或回答自己的帖子。另外,请保持文明,我们的“编辑”首先要做的是使所有内容易于阅读。根据FAQ,您应该清楚此处采取的措施。只是将其作为一种温和的提醒,无意冒犯。
slhck 2011年

我喜欢您的批处理代码。通过“发送到”菜单使用代码重复复制名为file.txt的文件时,将产生文件{copy1} .txt,文件{copy2} .txt等。但是,如果有人愿意产生file(1).txt,file(2).txt等,则可以将代码中显示{copy%2}的部分更改为(%2)。我知道这是一个旧主题,但想为该页面可能遇到的其他事情做出贡献。
街景背包2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.