2012-08-09 190 views
0

之间有条件的副本,我需要你的帮助。我正在寻找一个批处理文件来执行特定的操作和检查。让我解释一下情况:批处理文件:两个文件夹

我有2个文件夹(C:\ Folder1和C:\ Folder2)
我想知道是否可能有一个批处理文件,每个* .TXT文件放入Folder1将该文件的副本放置到文件夹2(比较2个文件夹并确保该文件不存在于Folder2中)。

是否有可能也有一个计数器,当另一个TXT文件放在到文件夹1只应将该文件复制到文件夹2(已加入到不是所有的以前的txt文件)作为。

回答

3

最简单的方法是使用robocopy。它已经只会复制已更改的文件并且有很多选项来控制它将复制的内容。它内置于Vista +中,可在Server 2003 Resource Kit中下载用于Windows XP/Server 2003。

+0

非常感谢你确实 – Meleena 2012-09-10 10:33:50

3

这将复制中不存在c:\folder2但在当前文件夹不存在c:\folder2

for %%a in (*.txt) do if not exist "c:\folder2\%%a" copy "%%a" c:\folder2 

行情的任何txt文件添加到涵盖@dbenham识别可能存在的问题

+0

+1,但你的IF NOT EXIST目标应放在引号防范空格和特殊字符包围。 – dbenham 2012-08-09 16:32:11

+1

@dbenham,应该会更好。我想,我花了* *的方式太多时间与8.3名 – SeanC 2012-08-09 16:34:52

1

将Sean的答案从folder1而不是当前目录复制是很容易的。我还在路径中添加了引号,以便像&这样的空格和特殊字符不会破坏代码。

@echo off 
for %%F in ("c:\folder1\*.txt") do if not exist "c:\folder2\%~nxF" copy "%%F" "c:\folder2" 

你甚至不需要批处理文件。如果将所有双百分比更改为单一百分比,则可以简单地从命令行运行FOR命令。

我也很喜欢shf301建议,但也有直到你习惯了它,它可能会比较混乱这么多ROBOCOPY选项。我相信你想要的以下内容:

robocopy /xn /xo "c:\folder1" "c:\folder2" *.txt 
+0

非常感谢你确实dbenham – Meleena 2012-09-11 14:07:25

相关问题