在 Windows 7 中更改默认副本重命名

在 Windows 7 中更改默认副本重命名

我正在尝试在 Windows 7 中启用该问题的解决方案,但到目前为止还没有成功:

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

我尝试创建 .cmd 文件,但并未实现我想要的效果。

我的基本问题是,假设文件夹中已经有一个文件 xxx.ext。当我将同名文件复制到同一文件夹时,该文件被命名为 xxx(1).ext。我想将其命名为 xxx_1.ext。您能告诉我一种方法吗?

我是否更改了某些默认设置?

答案1

在 Windows 7 上,它并不完全是“xxx(1).ext”。将“文件名.ext”复制到“文件名 - 复制.ext”,然后复制到“文件名 - 复制 (2).ext”、“文件名 - 复制 (3).ext”等等。相反,您希望将“文件名.ext”复制到“文件名_1.ext”、“文件名_2.ext”等等?cmd 文件可以很容易地进行相应修改:

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

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

:copy
copy %1 "%~n1_%2%~x1"
goto :eof

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

编辑:按照下面的讨论,修改批处理文件以将文件复制到特定文件夹并按顺序重命名:

REM Specify your destination path below without quotes or trailing backslash
set folder=I:\New folder

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

:try_copy
if not exist "%folder%\%~n1_%2%~x1" goto :copy
call :try_next %1 %2
goto :eof

:copy
copy %1 "%folder%\%~n1_%2%~x1"
goto :eof

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

相关内容