String PowerShell转义序列

String PowerShell转义序列,string,powershell,escaping,double-quotes,single-quotes,String,Powershell,Escaping,Double Quotes,Single Quotes,我已经仔细研究了PS的逃跑规则,但我无法理解为什么只有在某些时候它才起作用。例如,如果我将字符串参数传递给cmdlet,似乎所有的赌注都没有了 PowerShell'回显“你好” 我希望这会产生一个输出:Hello here,但是PowerShell会完全忽略双引号,并且无论我使用哪个转义序列,它都拒绝承认它们甚至存在于字符串中。当然,以上只是一个例子。无论使用哪种cmdlet,只要传递字符串,所有转义规则似乎都不适用。通过PowerShell将字符串传递到Node.JS也是如此: node-p

我已经仔细研究了PS的逃跑规则,但我无法理解为什么只有在某些时候它才起作用。例如,如果我将字符串参数传递给cmdlet,似乎所有的赌注都没有了

PowerShell'回显“你好”

我希望这会产生一个输出:
Hello here
,但是PowerShell会完全忽略双引号,并且无论我使用哪个转义序列,它都拒绝承认它们甚至存在于字符串中。当然,以上只是一个例子。无论使用哪种cmdlet,只要传递字符串,所有转义规则似乎都不适用。通过PowerShell将字符串传递到Node.JS也是如此:

node-p'console.log(“Hello”)”

这再次抛出了一个错误,因为PowerShell决定扔掉我的双引号,并假装它们不存在

有趣的是,如果我交换引号,如下所示:

node-p“console.log('Hello')”

它生成正确的结果,尽管字符串中的任何双引号都会立即将其打断。这太奇怪了,它似乎不适用于字符串参数。我误解规则了吗?有没有办法在PS不会完全忽略的单引号字符串参数中使用双引号


感谢您的帮助。

此链接包含我使用的大多数规则:

反勾号用于取消变量插值:

“`$var”==$var
在双引号字符串中保留双引号:
“正如他们所说的,“生活和学习。”


如果您有具体的示例,我们可以深入研究。

这是否回答了您的问题:?简言之:不幸的是,嵌入式
字符必须手动进行
\
-转义才能传递到外部程序-请参阅。