我試圖寫一個PowerShell腳本,執行以下操作:如何輸出誤差在PowerShell中的日誌文件複製文件時
- 檢查是否在遠程機器上的文件夾(計算機文本列表)存在,如果這樣刪除它。
- 將遠程共享中的文件夾複製到同一臺機器,並且如果有錯誤輸出到錯誤日誌文件,則輸出到成功日誌文件。
我已經搜查,但一直未能找到解決我的看似簡單的問題,請參閱我下面的代碼:
$computers=Get-Content C:\pcs.txt
$source="\\RemoteShare\RemoteFolder"
$dest="C$\Program Files\Destination"
foreach ($computer in $computers) {
If (Test-Path \\$computer\$dest){
Remove-Item \\$computer\$dest -Force -Recurse
}
Copy-Item $source \\$computer\$dest -recurse -force -erroraction silentlycontinue
If (!$error)
{Write-Output $computer | out-file -append -filepath "C:\logs\success.log"}
Else
{Write-Output $computer | out-file -append -filepath "C:\logs\failed.log"}
}
目前,該腳本運行時,一切都越來越放在失敗.log文件,而不管它是否失敗。
如何在運行for循環時正確處理PowerShell中的錯誤?
您可以使用$ _。Message來獲取catch塊中的異常消息。 –
@ChadCarisch是的,我知道。我只是想爲他提供一個例子。 – crownedjitter