2013-07-17 75 views
0

我正在運行下面的腳本。如果copy-item命令成功完成,它不會顯示任何消息,例如複製了多少個文件。我如何捕捉這個?在powershell中通過cmdlet捕獲郵件

注:我還需要捕捉該腳本的做正確的錯誤消息。

$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" 

回答

3

可以obtein複製的文件列表,這樣

$files = copy-item -path $from -destination $to -passthru 

管它| ? { -not $_.psiscontainer }如果正在複製文件夾,你不希望他們在數

然後使用

$files.count 
+0

真棒..作品..謝謝CB .. –

+0

@AvinashGanesh很高興幫助! –

0

您可以使用-Verbose開關與Copy-Item cmdlet的。

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

嗨Ravi,我試過,因爲你提到。它顯示在屏幕上,並沒有傳遞給變量$ msg –

+0

是的!我誤解了你的問題。你也可以使用Tee-Object cmdlet。 – ravikanth

相關問題