发生名称冲突时创建保存两个文件的批处理文件

时间:2012-12-25 19:54:17

标签: batch-file

有没有办法让批处理文件在名称冲突时不会覆盖现有文件,而是将文件的两个副本保留在同一路径中?

1 个答案:

答案 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%"