我找不到一种方法来仅记录 robocopy 执行输出中的更改,即:那些被视为新文件、新目录、较新的文件、额外文件或额外目录的更改。
我现在的默认输出包含复制过程中考虑的所有目录(已触及或未触及)的列表。我想隐藏未触及的目录。
帮助似乎没有显示出实现此目的的方法。
答案1
如果你仔细看看文档或者robocopy /?
,您将找到/NDL
开关。
指定不记录目录名称。
这样,您将不会输出目录的单个名称(可以将其视为一种进度标记)。但“文件名”将包含路径。
例如,您将获得以下输出:
*EXTRA Dir -1 C:\Temp\test\
*EXTRA File 0 C:\Temp\test\test.txt
100% Newer 72 C:\Temp\test.txt
答案2
使用/NDL
并不是完美的解决方案,因为它也会隐藏任何目录更改(新的、更改的、删除的)。
您可以使用它grep
进行一些过滤。这也不是一个完美的解决方案,但它可能比它更好,/NDL
因为它会列出目录更改。基本上它会删除以 17 个空格开头的行。
grep -v -E '^\s{17}' robocopy.log > changes.log
-v
逆匹配(跳过匹配)^\s{17}
以 17 个空格开头
注意:您必须安装grep
(Git Bash 附带)。该{17}
语法不适用于findstr
。