有没有办法让批处理文件在名称冲突时不会覆盖现有文件,而是将文件的两个副本保留在同一路径中?
答案 0 :(得分:3)
下面的批处理文件就像只有一个文件的COPY命令一样。如果文件已存在于目标文件夹中,则括号中的数字将添加到新文件中,以便保留这两个文件。
@echo off
Rem mycopy sourceFile targetDir
Set targetName=%~1
Set i=0
:nextName
If not exist "%~2/%targetName%" goto copy
Set /A i+=1
Set targetName=%~1 (%i%)
Goto nextName
:copy
Copy %1 "%~2/%targetName%"