我需要你的帮助。我正在寻找一个批处理文件来检查特定的操作。让我解释一下情况:
我有2个文件夹(C:\ Folder1和C:\ Folder2)
我想知道是否有可能有一个批处理文件,对于放入Folder1的每个* .TXT文件,将该文件的副本放到文件夹2中(在比较2个文件夹并确保Folder2中不存在此文件之后) )。
是否有可能还有一个计数器,因为当另一个TXT文件被放入Folder1时,它应该只将该文件复制到Folder2(不是所有以前添加到A中的txt文件)。
答案 0 :(得分:3)
最简单的方法是使用robocopy。它已经只会复制更改的文件,并有很多选项来控制它将复制的内容。它内置于Vista +中,可以在Server 2003 Resource Kit中为Windows XP / Server 2003下载。
答案 1 :(得分:3)
这会将c:\folder2
中不存在但当前文件夹中存在的任何txt文件复制到c:\folder2
for %%a in (*.txt) do if not exist "c:\folder2\%%a" copy "%%a" c:\folder2
添加了引号,以涵盖@dbenham
标识的可能问题答案 2 :(得分: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