在 PowerShell 中抑制 robocopy 中的空行

Suppress blank line from robocopy in PowerShell

我在 PowerShell 脚本中使用 robocopy 来规避 PowerShell 使用非常长的路径名(超过 260 个字符)的限制。程序 robocopy 被调用为

robocopy /E /NP /NFL /NDL /NJH /NJS $Source $Destination

此调用抑制了 robocopy 的所有这些详细输出,但允许显示任何错误。不幸的是,robocopy 仍然输出一个空行。由于 robocopy 输出已放入我的日志文件中,因此我想禁止显示这一空白行。

编辑: 很明显,在一种 post 处理中实现这一点并不容易。但如果只过滤掉单行就好了。如果 robocopy 输出了一些行(包括错误),则没有必要抑制所有空行。

你有机会分享输出吗?

根据我的理解(并且可能有很长的路要走,因此为什么要求输出)你没有得到错误,你只是想要甜美,甜美的东西。在这种情况下,我们将使用 out-null

& robocopy /E /NP /NFL /NDL /NJH /NJS $Source $Destination | out-null

举个例子:

get-item c:\users | out-null

什么也不会给你。

如果我误解了你的问题,我深表歉意。

您可以使用如下命令过滤空行:

robocopy /E /NP /NFL /NDL /NJH /NJS $Source $Destination | findstr /r /v "^$"