Powershell命令行抛出

时间:2014-11-17 11:46:52

标签: powershell

出于测试目的,我想创建一个总是崩溃的“假”过程。

由于我正在使用Powershell来实现这一点,我正在考虑使用一个只抛出异常的命令运行另一个PS实例(throw 'test')。

在这么简单的任务中敲了几分钟后,我发现:

powershell -command "& throw 'test'"

产生错误“抛出不理解”,但是:

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

抛出我想要的异常。

有什么区别?为什么我需要在投掷周围使用花括号?

1 个答案:

答案 0 :(得分:4)

在第一个版本中,您尝试调用名为throw的程序,因此失败。

如果您只是这样做,它实际上会正常工作:

powershell -command "throw 'test'"

在第二个版本中,您使用花括号,因此表达式由&作为脚本块进行评估,而不是尝试调用程序