2012-04-17 198 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