You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在PowerShell中调用Python脚本时字符串变量参数无法识别的求助

问题原因

在PowerShell中,当你将参数存储为单个字符串变量$arg并传递给Python脚本时,PowerShell会把整个字符串作为一个单独的参数传给Python。而Python的argparse会将这个完整字符串识别为一个未知的命令行参数,因此报错。

解决方法

方法1:用数组存储参数(推荐)

不要将参数存在单个字符串里,改用PowerShell数组存储每个独立参数,这样传递时会自动拆分为多个独立参数:

# 定义参数数组
$arg = @("--arg1", "--arg3", "arg3_value")
# 调用脚本
python .\some_script.py $arg

方法2:拆分字符串为数组传递

如果已经有现成的参数字符串,可以用-split按空格拆分后传递:

$arg = "--arg1 --arg3 arg3_value"
# 按空白字符拆分字符串为数组
python .\some_script.py ($arg -split '\s+')

方法3:使用Invoke-Expression执行完整命令(谨慎使用)

这个方法会把整个命令字符串当作PowerShell命令执行,效果和直接输入命令一致,但如果参数包含不可信内容,存在注入风险:

$arg = "--arg1 --arg3 arg3_value"
Invoke-Expression "python .\some_script.py $arg"

内容的提问来源于stack exchange,提问作者Wuschelkopf24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 12:57:21