如果传递的shell = False,则Cmd.exe不起作用。
在Windows上,子进程将使用Win32
API中的CreateProcess函数创建新进程。该函数的文档指出,第二个参数(由subprocess.list2cmdline构建)的最大长度为32,768个字符,包括Unipre终止空字符。如果lpApplicationName为NULL,则lpCommandLine的模块名称部分限制为MAX_PATH字符。
给定您的示例,我建议为可执行文件(args
[0])提供一个值,并为第一个参数使用args。如果我对CreateProcess文档和子流程模块源代码的阅读正确,则应该可以解决您的问题。
[edit:拿到Windows机器并进行测试后,删除了args [1:]位]



