我想要一个.bat文件,它会自动将所有文件和文件夹从一个文件夹复制到另一个文件夹。例如:
robocopy "c:\source" "D:\target" /e /MON:1 /xc /xn /xo
但是我需要它,以便复制文件后,即使副本已移动到其他目录,也不会再次复制该文件。有没有办法做到这一点? robocopy是否可以在复制文件之前创建日志并进行检查?
如果robocopy无法做到,可以做什么?
答案 0 :(得分:1)
根据robocopy的建议在Stephan(SS64文章)命令行中另外使用选项/M
,因为此选项导致仅复制在源文件夹树中设置了归档属性的文件,成功复制文件后,通过 robocopy 删除存档属性。
%SystemRoot%\System32\robocopy.exe "C:\source" "D:\target" /M /E /MON:1 /XC /XN /XO
在文件修改时会再次自动设置存档属性。
您也可以使用xcopy(SS64文章):
%SystemRoot%\System32\xcopy.exe "C:\source" "D:\target\" /M /E /C /I /Q /G /H /R /K /Y >nul
对于您的任务而言,重要的是选项/M
,用于仅复制在源文件夹树中设置了归档属性的文件,并在复制文件后清除归档属性。
注意:/I
仅在目标文件夹路径以反斜杠结尾的情况下,在没有用户提示的情况下工作。
分别在命令提示符窗口robocopy /?
xcopy /?
中运行,以获取有关其他选项的详细信息,或阅读robocopy和xcopy的Microsoft文档。
答案 1 :(得分:0)
好吧那么,最简单的方法是复制每个 单独的文件和文件夹,到所述文件夹。 这可能不是你想要的,但是 我希望它有所帮助!可悲的是,没有办法 使用单个命令复制l个文件夹。