2010-10-29 73 views
1

我有一個腳本模塊,它的.psm1文件運行一個命令,如果某個註冊表值不存在,該命令將會失敗。我想忽略這個失敗,因此名爲.psm1腳本運行的命令:在開始工作初始化腳本中不會忽略的錯誤腳本

CommandThatMayFail -ea SilentlyContinue 

當我導入模塊中的PowerShell會話這一切正常。但是這個模塊中的一個功能啓動了一些PS作業,這也需要導入模塊。當我在作業的InitializationScript中導入模塊時,CommandThatMayFail發生的故障不會被忽略,作業將終止。我嘗試在Try/Catch塊中包裝CommandThatMayFail,但這沒有任何幫助。

我已經通過在作業的ScriptBlock中導入模塊而不是InitializationScript來避免此問題。但我仍然對這裏發生的事情感到好奇。任何人都可以擺脫光線嗎?

回答

0

嘗試把在同一範圍內InitializationScript陷阱,但它前面的代碼:

Trap{ 
    <commands you want it to run in case of error>; 
    continue 
    } 

的重要組成部分,有分號和continue。我今天有同樣的問題,具有諷刺意味的是,這固定了我。我認爲這是終止/非終止錯誤和範圍的問題,但這是我可以在我自己的腳本中解決它的唯一方法。

+0

陷阱沒有比try/catch更好(正如我所預料的那樣)。在我看來,如果在InitializationScript中發生任何非終止錯誤,PowerShell會使作業失敗。 – OldFart 2010-11-01 15:53:38