如何从robocopy输出中隐藏“额外文件”和“ 100%”行?


17

我有一个robocopy脚本来备份我们的每晚运行的窑库,如下所示:

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /LOG:"$backupLogLocation\BackupKiln.txt" /NFL /NDL /NP

在输出中,有很多行包含“额外文件”,如下所示:

*EXTRA File              153    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdt
*EXTRA File               12    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdx
*EXTRA File              128    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fnm
*EXTRA File              363    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.frq
*EXTRA File               13    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.nrm

此外,在底部还有几百行,仅包含“ 100%”,如下所示:

100%  
100%  
100%  
100%  
100%  
100%  
100%  

除了使日志文件变得庞大(窑库中有很多文件夹/文件)之外,它还使现在扫描整个日志,然后查看是否一切正常的做法很烦人。

  1. 如何停止“额外文件”出现在日志中?(编辑:整行,而不仅仅是/ NC将停止的文本)
  2. 如何停止日志中出现的这些愚蠢的“ 100%”行?

我已经尝试过可以想到的每种开关组合(当前开关在命令上方列出),但是似乎都没有隐藏它们!


根据ss64.com/nt/robocopy.html,它应该可以工作。您是否尝试过更改参数顺序以反映文档?那将是:/ L / NP / LOG:文件/ UNILOG:文件/ LOG +:文件/ UNILOG +:文件/ TS / FP / NS / NC / NC / NFL / NDL / TEE / NJH / NJS
Luiz Angelo

Answers:


8

只是注意到您在那里缺少/ NC。

/ NC:无类-不记录文件类。

类文件是... robocopy的调整,孤独和多余意味着什么?

因此,我尝试:robocopy“ $ liveRepoLocation”“ $ cloneRepoLocation” / MIR / MT / W:3 / R:100 / NP /LOG:"$backupLogLocation\BackupKiln.txt“ / NC

编辑1

我的错。没看到您已经提到尝试/ NC

我在这里测试过。/ MIR选项似乎忽略了日志记录选项。/ MT也弄乱了它,加上了100%。

我上班的唯一方法是

D:\ robocopy> robocopy源目标/ MIR / W:3 / R:100 / NS / NC / NFL / NDL / NP / LOG /log:log.txt”。

*它实际上与/ MIR一起使用。但是您必须指定/ NFL /NDL。*不知道您是否可以接受。

如果您尝试/ MT,它仍然会显示100%的愚蠢

编辑2

我知道问题与Robocopy有关,但我认为您应该尝试RichCopy http://technet.microsoft.com/zh-cn/magazine/2009.04.utilityspotlight.aspx

这是命令行:

richcopy“ D:\ robocopy \ source”“ D:\ robocopy \ destination” / P / QO / QP“ D:\ robocopy \ report.log” / UE / US / UD / UPC / UFC / UFC / USC / UPR / UET

它会启动RichCopy的GUI,并在完成后关闭。

这是日志

28/11/2012 11:35:19,0,复制开始,

28/11/2012 11:35:20,0,源路径:D:\ robocopy \ source,

28/11/2012 11:35:20,0,目标路径:d:\ robocopy \ destination,

28/11/2012 11:35:20,0,源文件数:12个文件,

28/11/2012 11:35:20,0,已复制文件数:13个文件,

28/11/2012 11:35:20,0,已清除文件数:1,224个文件,

28/11/2012 11:35:20,0,经过时间:00:00:01,

28/11/2012 11:35:20,0,平均性能:1,641,528字节/秒,

28/11/2012 11:35:20,0,平均效果:13个文件/秒,

28/11/2012 11:35:20,0,复制完成,D:\ robocopy \ source


1
/ NC只是删除“额外文件”列,因此不会显示该文本。该行的其余部分仍然包括在内。我根本不想要那条线。我只想要摘要:(
Danny Tuppeny,2012年

我的错。没看到您已经提到过。我在这里测试过。/ MIR选项似乎忽略了日志记录选项。/ MT也搞砸了。我唯一的工作方式是“ D:\ robocopy> robocopy源目的地/ MIR / W:3 / R:100 / NS / NC / NFL / NDL / NP /LOG:log.txt”。如果尝试/ MT,它仍然会显示100%的愚蠢值。
路易·安吉洛

1
100%是最糟糕的部分(它们比多余的文件要多得多);没有意识到这是MT这样做的,所以如果没有带来太大的好处,可以删除它!
Danny Tuppeny 2012年

将其标记为正确,因为它是对100%的解决方案,并且我认为使用/ MIR记录“额外文件”没有解决方案:(
Danny Tuppeny 2012年

我只是编辑了原始答案。只需发布新评论,您就不会错过它。
路易·安吉洛

5

/XX选项将多余的文件从列表中排除。相反,此选项在选项中列出File Selection,而不是Logging/X我想这与日志记录选项相反。


1
我相信/ XX可以阻止您选择额外的文件,而/ X仅用于记录日志,但是可以显示甚至更多的额外文件!/ XX帮了我大忙。
sonjz

1
-1,因为/ XX将多余的文件留在目标上,而不是像镜像过程所期望的那样将其删除。

3

我认为这可能有效:

robocopy sourceDir targetDir *.* /njh /njs /ndl /np | find /v "*EXTRA File"

因此,只需将输出通过管道/ V查找到“查找”,即可排除包含指定文本“ * Extra File”的行。


如何仅从日志中排除进度百分比(0到100%计数器)(但在控制台上仍可见)?
PeterCo '16

0

如何使用开关

 /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "log file name with or without path"

所以你有了

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "$backupLogLocation\BackupKiln.txt"
  • 需要双%%才能在搜索字符串中包含%
  • 2>&1 stderr流重定向到stdout因为一些消息被写入到stderr,我们想捕捉像那些行/ LOG开关一样。
  • 带/ v开关的2条findstr命令查找不包含搜索字符串的所有行
  • >“日志文件名”重定向最终输出到你的日志文件。如果通常使用/ LOG:+,则使用>>“ log filename”代替

注意:如果您正在Powershell脚本中使用它(如您所愿),则需要使用findstr而不是在.bat或.cmd文件中使用find。请注意,/ L和/ C:不被find支持,但是对于find命令,它们不是必需的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.