问问题
33711 次
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
- 用“”开始-命令开关
字符串通过在两边用 4 次引号括起来的文本来识别: """" text """"
例子:
powershell.exe -command """""Recognized as string """""
Output Stream:> Recognized as string
对于子表达式中的引号,双引号,这意味着 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 回答