我可以让 robocopy 日志文件只显示一行摘要和日期吗?而不是多列?谢谢你

Posted

技术标签:

【中文标题】我可以让 robocopy 日志文件只显示一行摘要和日期吗?而不是多列?谢谢你【英文标题】:Can I get the robocopy log file to just display one line of the summary and date? instead of having multiple columns? thank you 【发布时间】:2021-04-29 16:03:51 【问题描述】:

到目前为止,我有这段代码只是为了显示 robocopy 的摘要。我可以把这条线做得很短,只有 1 行吗?就像一行显示复制的总大小、日期以及是否成功或类似的东西。谢谢

/Z /e /xx /W:5 /NFL /NDL /NJH /nc /np /unilog+:$Logfile

这是输出:


               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         1         0         0         0         0         0
   Files :        10         1         9         0         0         0
   Bytes :   1.009 g  102.79 m  931.15 m         0         0         0
   Times :   0:00:06   0:00:06                       0:00:00   0:00:00


   Speed :            15897359 Bytes/sec.
   Speed :             909.654 MegaBytes/min.
   Ended : Thursday, April 29, 2021 11:24:08 AM

【问题讨论】:

【参考方案1】:

使用一点 Select-String、Trim 和 Split。

Clear-Host
#Next line for testing only you can delete since you already have it defined!
$LogFile =  "G:\BEKDocs\Batch\BackupTasks\RoboCopyNAS.log"

$Log = Get-Content -Path "$LogFile"

$Bytes = $($Log | Select-String -Pattern "Bytes :" -SimpleMatch).Line.Trim(" ")
$DT    = $($Log | Select-String -Pattern "Ended :" -SimpleMatch).Line.Trim(" ")

$Parts = $Bytes.Split(" ")

$Bytes = $Parts[3] + $Parts[4]

"Bytes Copied: $Bytes on $($DT.Trim('Ended :'))"

结果:

Bytes Copied: 27.493g on Thursday, April 29, 2021 6:15:20 PM

HTH

【讨论】:

您好,我希望它从 robocopy 将结果保存到文本文件中,这样当我收到电子邮件时,它会显示您输入的结果。有没有办法做到这一点? 我认为你必须使用 Add-Content 单行的字节部分也没有通过。 “复制的字节数:2021 年 4 月 30 日星期五上午 9:44:38” 我不知道如何将该行放入 RoboForm 电子邮件,因为它将在控制权返回到 PowerShell 以处理日志文件之前进行处理。您当然可以在处理完日志文件后终止 RoboForm 电子邮件并从 PowerShell 发送一封。 如何从 Powershell 发送一个?抱歉,我是新手。非常感谢您的帮助。

以上是关于我可以让 robocopy 日志文件只显示一行摘要和日期吗?而不是多列?谢谢你的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以让 SoX 只打印 wav 文件中的幅度值?

如何在一个批处理文件中从一个源文件夹执行两个 ROBOCOPY 语句到两个目标文件夹?

TFS中的Robocopy构建PowerShell步骤报告失败但没有错误

尾部只有一行的前几个字符

如何安全地杀死 robocopy 进程

Robocopy:不删除包含排除文件的文件夹