2014-11-17 81 views
1

出於測試目的,我想創建一個總是崩潰的「假」進程。Powershell命令行拋出

由於我使用Powershell來做到這一點,我正在考慮用一個只拋出異常的命令運行另一個PS實例(throw 'test')。

敲我的頭在這麼簡單的任務,幾分鐘後,我發現:

powershell -command "& throw 'test'" 

產生錯誤「扔是不理解」,而是:

powershell -command "& { throw 'test' }" 

拋出我想要的例外。

有什麼區別?爲什麼我需要在投擲過程中使用花括號?

回答

4

在第一個版本中,你試圖調用程序調用throw,因此它失敗。

它實際上正常工作,如果你壓根兒:

powershell -command "throw 'test'" 

在第二個版本,可以使用大括號,這樣的表達是通過&作爲一個腳本塊進行評估,而不是試圖調用程序

+0

當然!謝謝! :) – thomasb