Batch file 在复制到.bat文件后向文件名添加增量数字
我正在尝试创建一个.bat文件,该文件将在三个单独的文件夹中复制以“XX”结尾的所有文件。我希望它能将它们全部放在一个文件夹中,但在名称的末尾添加一个递增的数字(这样就不会有重复的文件名)。在阅读了我原来问题的答案后,我又写了一遍。但它仍然没有复制所有内容,因为它会得到重复的文件名Batch file 在复制到.bat文件后向文件名添加增量数字,batch-file,Batch File,我正在尝试创建一个.bat文件,该文件将在三个单独的文件夹中复制以“XX”结尾的所有文件。我希望它能将它们全部放在一个文件夹中,但在名称的末尾添加一个递增的数字(这样就不会有重复的文件名)。在阅读了我原来问题的答案后,我又写了一遍。但它仍然没有复制所有内容,因为它会得到重复的文件名 :: The setlocal line should put before the for loop: setlocal EnableDelayedExpansion set _a=0 for /D %%D i
:: The setlocal line should put before the for loop:
setlocal EnableDelayedExpansion
set _a=0
for /D %%D in ("R:\SQL QUERIES\Mark\text append testing\*") do (
::Same as set /a _a=_a+1
SET /A _a+=1
echo !_a!
xcopy /Y /S "%%~D\*XX*" "R:\SQL QUERIES\Mark\conversion_scripts"
ren "R:\SQL QUERIES\Mark\conversion_scripts\*XX*" *!_a!
)
pause
这项工作:
:: The setlocal line should put before the for loop:
setlocal EnableDelayedExpansion
set _a=0
for /D %%D in ("R:\SQL QUERIES\Mark\text append testing\*") do (
::Same as set /a _a=_a+1
SET /A _a+=1
echo !_a!
xcopy /Y /S "%%~D\*XX*" "R:\SQL QUERIES\Mark\conversion_scripts"
ren "R:\SQL QUERIES\Mark\conversion_scripts\*XX" *X!_a!
)
第一行应该是
Set“\u a=0”
,循环中的Set
应该是Set/a\u a+=1
,您的echo
和ren
命令应该在运行时使用延迟扩展或伪Call
语句进行扩展,例如Call echo(%\u a%%
,虽然我确信这一行不是必需的。此处重复:,。您所说的»可能重复,以“XX”«结尾?基本名称(如some_name XX.txt
)或扩展名(some_name.XX
)?基本名称。有趣的是,它们没有扩展名。它们只是type=file。我在笔记本中打开它们,但它们没有预定义的应用程序可运行。虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住请记住,你是在为将来的读者回答这个问题,而不仅仅是现在的提问者。请在回答中添加解释,并说明适用的限制和假设。