我有一個腳本,它將在幾臺本地計算機上運行,但我沒有做任何錯誤處理。我一直沒有在PowerShell中做過任何錯誤處理,所以我在這裏一直都是noob。我讀了一些關於它的內容,但老實說我只是在尋找一個快速而簡單的答案。PowerShell:錯誤處理腳本
問:有沒有像try/catch那樣的東西,儘可能少的代碼,以避免腳本重量?
我有一個腳本,它將在幾臺本地計算機上運行,但我沒有做任何錯誤處理。我一直沒有在PowerShell中做過任何錯誤處理,所以我在這裏一直都是noob。我讀了一些關於它的內容,但老實說我只是在尋找一個快速而簡單的答案。PowerShell:錯誤處理腳本
問:有沒有像try/catch那樣的東西,儘可能少的代碼,以避免腳本重量?
是,的try/catch /終於在PowerShell的V2版本:
Try{
<main code here>
}
Catch{
write-host $_ #Using the reserved $_ variable which should contain the error string
}
Finally{
<clean up code here - will execute regardless>
}
如果你受限於使用PowerShell v1的,那麼你將不得不使用陷阱結構。
Powershell 2.0已經嘗試,趕上,最後。請參見http://technet.microsoft.com/en-us/library/dd315350.aspx您還可以執行更多命令行方向的錯誤處理變體,如下所示的錯誤陷印:http://www.informit.com/articles/article.aspx?p=729515&seqNum=5
我正在使用powershell v2。 我對這段代碼所做的事情是把我所有的腳本粘貼到Try {}中,並且讓catch未指定,以便它能夠捕獲所有異常(我認爲),當我故意在try {}中寫了一個新行時, sdgsf「 我得到了在catch {}中指定的錯誤消息,但是當我執行如下操作時: 」$ username = gc env:usernamejghc「(我在命令末尾寫了jiberish) 我收到錯誤:Get-內容:找不到路徑'Env:\ usernamejghc',因爲它不存在。 我將更多地閱讀這個主題,同時:任何建議,將處理這個錯誤? – haakonlu 2012-04-17 15:27:59
你的意思是$ env:usernamejghc,我猜。該消息完全告訴你發生了什麼。 – 2012-04-17 18:12:18
是的,但爲什麼捕捉塊不能「捕捉」它?如果這個錯誤逃脫它,我想其他人也可以? – haakonlu 2012-04-18 07:55:04