即使使用 是一个好主意subprocess.Popen()
,这也不能解决问题。
您的问题不是 255 个字符的限制,这在 DOS 时代是正确的,后来 Windows NT/2000 增加到 2048,Windows XP+ 又增加到 8192。
真正的解决方案是解决 Windows API 中一个非常古老的错误:_popen() 和 _wpopen()。
如果您曾经在命令行中使用引号,则必须在引号中添加整个命令,否则您将收到The input line is too long
错误消息。
从 Windows XP 开始的所有 Microsoft 操作系统都有 8192 个字符的限制,现在对于任何体面的命令行使用来说已经足够了,但是他们忘记了解决这个错误。
要克服他们的错误,只需将您的整个命令包含在双引号中,如果您想了解更多真实的MSDN 评论 _popen()。
小心,因为这些工作:
prog
"prog"
""prog" param"
""prog" "param""
但这些不起作用:
""prog param""
如果您需要一个在需要时添加引号的函数,您可以从http://github.com/ssbarnea/tendo/blob/master/tendo/tee.py获取一个