Powershell:正确转义撇号

Powershell:正确转义撇号

我想从 powershell 执行一个命令,然后使用 在外部服务器上执行命令。但这仅在命令中plink没有'或时才有效,否则 Powershell 会跳转并打印异常。"

例子:

Invoke-Expression "$plinkPath -ssh $username@$host 'echo well...; echo hello'"

给出

well...
hello

.但是如果我想同时回应'",比如说

Invoke-Expression "$plinkPath -ssh $username@$host 'echo well...; echo hello, my "friend" 'brutus'!'"

要得到

well...
hello, my "friend" 'brutus'!

编辑:扩展,我想要一个$

well...
hello, my "friend" 'brutus', you $insult!

答案1

为了完整起见,这是我要求响应的命令:

& $plinkPath -ssh $username@$host "echo well...; echo Hello, my \\\`"friend\\\`" \'brutus\', you \`$insult!"

带来

well...
Hello, my "friend" 'brutus', you $insult!

相关内容