2

这在 PS 命令提示符下运行良好:

Get-WmiObject Win32_Share -computer "Server" -filter "Name = 'ShareName'"

当添加到 Ruby 中时,我可以让它执行(因为它不需要引号):

powershell (Get-WmiObject Win32_Share -computer "Server")

但不使用 filter 参数(需要引号):

powershell (Get-WmiObject Win32_Share -computer "Server" **-filter "Name = 'ShareName'"**)

错误的输出不显示双引号。我尝试了我所知道的一切来逃避它们,但没有任何效果。

尝试(... -filter \"Name = 'ShareName'\")
%x{}而不是``
尝试过单引号

4

1 回答 1

0

在 powershell 中,双引号字符串之间的值被解释,例如$HelloWorld包含字符串“Hello world”的对象。Powershell$HelloWorld的处理方式与它处理"$helloWorld". 但是,如果您键入'$HelloWorld'它,它将按字面意思解释它并将对象名称 $HelloWorld 打印为字符串。

PS> $HelloWorld = "Hello World"
PS> $helloworld
Hello World
PS> "$helloworld"
Hello World
PS> '$helloworld'
$helloworld

尝试这样的事情......

PS> "'$helloworld'"
'Hello World'
于 2013-02-05T21:57:26.357 回答