我希望在运行Robocopy脚本后运行一个定时脚本,该脚本将在远程服务器之间移动文件。
此脚本的要求是检查Robocopy脚本是否成功完成了从源目录到目标目录的复制操作。
如果是,则此脚本将清除源目录中的文件和文件夹。
我的问题是如何找出先前运行的Robocopy脚本是否成功完成了其工作?
我希望在运行Robocopy脚本后运行一个定时脚本,该脚本将在远程服务器之间移动文件。
此脚本的要求是检查Robocopy脚本是否成功完成了从源目录到目标目录的复制操作。
如果是,则此脚本将清除源目录中的文件和文件夹。
我的问题是如何找出先前运行的Robocopy脚本是否成功完成了其工作?
robocopy d:\foo e:\foo /mir
只需在下面键入以进行验证。
robomate d:\foo e:\foo
访问 https://robomate.tk 了解详情。
我不确定如何在PowerShell/Windows上以除了调用bash运行该命令的方式来完成这个任务。
但是,可以利用Linux中的WSL来进行一些手动检查。一个方法是为每个文件写入校验和,将文件复制过去,再为复制后的文件写入校验和,然后比较这两个校验和。你可以使用类似Notepad++中的比较插件(对两个文件都运行相同的行排序,使顺序匹配)进行比较。
你可以使用 find . -type f -exec sha256sum {} \;
递归地获取校验和。
通常我会将每个校验和的输出粘贴到Notepad++中的一个新文档中,在排序和比较之后,它会显示"文件匹配,是否关闭",我选择关闭而不保存。如果某个文件的校验和不匹配,则需要重新复制。
+A
属性,而Robocopy很可能有一个参数来在每个文件被复制时删除该属性(或者可能是相反的)。您可能需要进一步了解这一点。 - Mike Christensen