2012-04-17 180 views
1

我有一個腳本,它將在幾臺本地計算機上運行,​​但我沒有做任何錯誤處理。我一直沒有在PowerShell中做過任何錯誤處理,所以我在這裏一直都是noob。我讀了一些關於它的內容,但老實說我只是在尋找一個快速而簡單的答案。PowerShell:錯誤處理腳本

問:有沒有像try/catch那樣的東西,儘可能少的代碼,以避免腳本重量?

回答

2

是,的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的,那麼你將不得不使用陷阱結構。

+0

我正在使用powershell v2。 我對這段代碼所做的事情是把我所有的腳本粘貼到Try {}中,並且讓catch未指定,以便它能夠捕獲所有異常(我認爲),當我故意在try {}中寫了一個新行時, sdgsf「 我得到了在catch {}中指定的錯誤消息,但是當我執行如下操作時: 」$ username = gc env:usernamejghc「(我在命令末尾寫了jiberish) 我收到錯誤:Get-內容:找不到路徑'Env:\ usernamejghc',因爲它不存在。 我將更多地閱讀這個主題,同時:任何建議,將處理這個錯誤? – haakonlu 2012-04-17 15:27:59

+0

你的意思是$ env:usernamejghc,我猜。該消息完全告訴你發生了什麼。 – 2012-04-17 18:12:18

+0

是的,但爲什麼捕捉塊不能「捕捉」它?如果這個錯誤逃脫它,我想其他人也可以? – haakonlu 2012-04-18 07:55:04