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

如何通过命令行运行带参数的py2exe编译exe文件并解决PowerShell报错

解决方案

你遇到的报错均由PowerShell的命令解析规则导致,和Python代码、py2exe编译结果无关:

  • 第一种写法里,双引号包裹的exe路径被PowerShell识别为普通字符串,后续的-arg1被判定为无效语法单元
  • 第二种写法里,-arg1被识别为Start-Process(start是该命令的别名)本身的参数,而不是传给test.exe的参数

方案1:路径无空格时直接运行

如果exe路径不包含空格,不需要加引号,直接执行即可:

C:\Users\test.exe -arg1 "Arg1" -arg2 "Arg2" -arg3 "arg3"

方案2:路径有空格时用调用运算符&

如果路径包含空格必须用双引号包裹,在引号前加&告诉PowerShell后续内容是要执行的程序:

& "C:\Users\test.exe" -arg1 "Arg1" -arg2 "Arg2" -arg3 "arg3"

方案3:使用start/Start-Process的正确写法

如果需要用start启动程序,必须通过-ArgumentList参数传递要发给exe的所有参数:

start -FilePath "C:\Users\test.exe" -ArgumentList "-arg1","Arg1","-arg2","Arg2","-arg3","arg3"

如果需要保留控制台窗口查看打印输出,额外添加-NoNewWindow -Wait参数:

start -FilePath "C:\Users\test.exe" -ArgumentList "-arg1","Arg1","-arg2","Arg2","-arg3","arg3" -NoNewWindow -Wait

附加说明

你的参数解析代码存在笔误:z = args.arg2需要改为z = args.arg3,否则第三个打印输出的会是第二个参数的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:36:04