7

Can someone explain the differences between Invoke-Expression $test and Invoke-Expression -Command $test?

variable test is:

 $test = "notepad.exe myfile.txt"
4

4 回答 4

11

两者都是一样Invoke-Expression $testInvoke-Expression -Command $test。两者都将放入$test位置 1 的“命令”参数-Command中。您可以放入的 is 和可选参数名称。

SYNTAX
    Invoke-Expression [-Command] <string> [<CommonParameters>]
于 2013-09-05T13:54:11.410 回答
5

它们在功能上是等效的。-Command是 cmdlet 采用的唯一参数,它不在CommonParameters集合中,并且是位置使用时的第一个参数(默认情况下,因为它是唯一的参数)。

您对第二个示例所做的只是明确命名参数,而不是依赖位置。养成这样的好习惯。冗长,但面向未来,它使您的意图一清二楚。

于 2013-09-05T13:53:04.443 回答
-2

两者都不相同:

Invoke-Expression:在本地计算机上运行命令或表达式。

Invoke-Command:在本地和远程计算机上运行命令。

于 2017-11-22T11:13:27.660 回答
-5

这些命令相似,但行为不同。例如:

$sb = [scriptblock]::Create( "test-path 'c:'")
iex $sb
icm $sb

iex会产生错误而不会icm

于 2016-02-10T09:49:16.143 回答