繁体   English   中英

双引号和空格作为 PowerShell 中 python 脚本的参数

[英]double quotes and whitespace as argument to python script in PowerShell

我正在尝试使用 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 字符串作为参数。

9个月没有回答。 当前的解决方法是使用\" "

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

使用 '\`'(反斜杠 + 反引号)转义"也可以(我不能在代码风格的降价中包含这里的反引号,因为我不知道如何转义它......具有讽刺意味)。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM