powershell - 将输出存储在变量中或输出到文件中哪个更有效?

标签 powershell robocopy

我正在 PowerShell 中使用 Robocopy 来排序并输出数百万个早于用户指定年龄的文件名。我的问题是:最好利用 Robocopy 的日志记录功能,然后通过 Get-Content -ReadCount 导入日志,还是将 Robocopy 的输出存储在变量中以便脚本更好不必写入磁盘?

我必须以任何一种方式进行正则表达式才能获取实际的文件名。我使用 Robocopy 是因为许多文件的路径长度超过 248 个字符。

是否有一种方式比另一种更受青睐?不想错过一些应该被认为是显而易见的事情。

最佳答案

您可以通过使用 Measure-Command 测量每种方法所需的时间来跳过有关多个因素的所有理论和推测,例如:

Measure-Command {$rc_output = robocopy <arguments>}

Measure-Command {robocopy <arguments> /log:rc.log; Get-Content rc.log [...]}

您将得到输出,准确地告诉您每个版本花费了多长时间,精确到毫秒。在少量示例数据上进行尝试,看看哪一个更快,然后将其应用到数百万个文件中。

关于powershell - 将输出存储在变量中或输出到文件中哪个更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21008516/

相关文章:

powershell - Psake 和 robocopy 失败

windows - 带有通配符的 Robocopy 批处理复制的文件多于应有的数量。为什么?

Powershell 从重写函数调用基类函数

powershell - Powershell仅排除文件

powershell - 如何使用 PSCustomObjects 对对象进行不可变的更改?

windows - 运行 robocopy bat 将整个驱动器复制到另一个驱动器

command-line - 暂停和恢复 robocopy

backup - 除了进度之外,如何在命令行中使 robocopy 保持静默?

azure - Azure CLI和PowerShell之间的区别

regex - Powershell-替换给出奇怪的行为