12
4

4 回答 4

13

使用反引号`来转义您的特殊双引号,因此:

powershell -noexit -command $str = \"hello '123'” world\"; write-host $str

变成这样:

powershell -noexit -command $str = \"hello '123'`” world\"; write-host $str

编辑:

选项 1。如果您更喜欢使用此处的字符串,您可以将上面的内容更改为powershell -file并运行您的 powershell 脚本文件。在这里尽可能多地使用字符串。

选项 2。如果您不想在调用/处理应用程序/脚本中处理特殊引号字符,则可以改用单引号。在这种情况下,您只需要通过将单引号加倍来转义单引号,如下所示:

powershell -noexit -command $str = 'hello ''123''” world'; write-host $str

注意这里我没有对你的双引号字符做任何事情,它工作得很好。

因此,您的字符串替换代码可能会变得更易于阅读和维护,特别是如果编辑器没有正确显示此字符(就像 Powershell 控制台那样 - 它显示的是常规双引号)。

于 2013-11-08T17:01:17.177 回答
2
  1. 用“”开始-命令开关
  2. 字符串通过在两边用 4 次引号括起来的文本来识别: """" text """"

    例子:

    powershell.exe -command """""Recognized as string """""
    
    Output Stream:> Recognized as string
    
  3. 对于子表达式中的引号,双引号,这意味着 8 倍引号

    例子:

    powershell.exe -command """""""""How to quote in subexpression"""""""""
    
    Output Stream:> "How to quote in subexpression"
    
于 2018-04-21T14:43:37.850 回答
1

从命令提示符(实际上在 PowerShell 中)运行它:

powershell -noexit -command { $str = "hello '123' world"; write-host $str }

生成:

hello '123' world

这能满足您的需要吗?

于 2013-11-08T15:32:52.957 回答
1

我遇到了同样的问题,发现使用 Powershell 6.x (Core) 可以做到这一点:

pwsh -command write-host "`u{22}quoted`u{22}" 

输出:

"quoted"
于 2019-09-11T11:44:27.513 回答