将文件类型从子目录复制到一个文件夹重命名文件,以便它们不会覆盖

时间:2013-02-22 21:40:24

标签: batch-file batch-processing batch-rename

我想从子目录中复制一个文件类型,将副本放在一个文件夹中,重命名它们以便它们不会覆盖。重命名它但保留文件扩展名。我不关心它被重命名的内容,只要每个副本都有一个唯一的名称,这样它们就不会被覆盖。

现在是我的代码。除了覆盖具有相同名称的文件外,它会执行我想要的所有操作:

代码:

set dSource=C:\Users\P Ditty\Documents\SH3\data\cfg\Careers
set dTarget=C:\Users\P Ditty\Documents\SH3\data\cfg\Backups_SCR
set fType=*.clg
for /f "delims=" %%f in ('dir /a-d /b /s "%dSource%\%fType%"') do (
copy  /v "%%f" "%dTarget%\" 2>nul
)

谢谢。

1 个答案:

答案 0 :(得分:1)

通过保留原始目录结构来避免重复问题:

set dSource=C:\Users\P Ditty\Documents\SH3\data\cfg\Careers
set dTarget=C:\Users\P Ditty\Documents\SH3\data\cfg\Backups_SCR
set fType=*.clg

xcopy/s/i "%dSource%\%fType%" "%dTarget%"