在PowerShell中通过cmdlet捕获消息

时间:2013-07-17 06:05:58

标签: powershell

我正在运行以下脚本。如果Copy-Item命令成功完成,则不会显示任何消息,例如复制了多少文件。我如何捕获这个?

注意:我还需要捕获脚本正确执行的错误消息。

    $LogFile = "P:\users\Logname.log"
    $msg = Copy-Item P:\Bkp_20130610\* P:\users -force -recurse -ErrorAction SilentlyContinue
    if (-not $?)
   {
     msg1 = $Error[0].Exception.Message
      Write-Host "Encountered error. Error Message is $msg1."
     exit
   }

   $msg > $LogFile
   Write-Host "Hello"

2 个答案:

答案 0 :(得分:3)

您可以通过这种方式获取复制文件的列表

$files = copy-item -path $from -destination $to -passthru 
如果您正在复制文件夹并且您不希望它们在计数

中,请将其<{1>}传送给| ? { -not $_.psiscontainer }

然后使用

 $files.count

答案 1 :(得分:0)

您可以将-Verbose开关与Copy-Item cmdlet一起使用:

$msg=Copy-Item P:\Bkp_20130610\* P:\users -force -recurse -ErrorAction SilentlyContinue -Verbose