双引号和空格作为PowerShell

时间:2018-03-09 07:41:23

标签: python json powershell command-line-interface

我正在尝试使用PowerShell运行python脚本。在那个python脚本中,我尝试使用包含双引号和空格的命令行参数,这些参数无法正常工作。我怀疑它是PowerShell的一个问题。

(简化的)python脚本如下所示:

import sys
print(sys.argv[1])

以下调用和输出显示问题

python script.py --arg=foo
--arg=foo

python script.py --arg='\"foo\"'
--arg="foo"

python script.py --arg='\"fo o\"'
--arg="fo

但我最终需要的是

--arg="fo o"

它消除了空白之后的所有东西。我在Linux bash中测试了相同的脚本(在foo周围使用双引号)。这似乎不是一个python问题,而是PowerShell问题,任何人都可以帮助我吗?最后,我想要一个完整的JSON-String作为参数。

2 个答案:

答案 0 :(得分:0)

9个月无人接听。当前的解决方法是使用"转义\"

以下是错误:https://github.com/PowerShell/PowerShell/issues/1995

答案 1 :(得分:0)

用'\`'(反斜杠+反引号)转义"也是可行的(我不能在代码样式标记中包括反引号,因为我不知道如何转义...具有讽刺意味的)。

请注意,带有转义双引号的整个参数也必须封装在双引号中。用单引号引起来是行不通的。

来源:http://www.rlmueller.net/PowerShellEscape.htm