我想加载cmd.exe并使用多个参数调用bat文件。所有这些都来自python。
我的bat文件如下:
@echo off
call ifortvars.bat intel64
cd %5
abaqus job=#1 user=%2 cpus=%3 gpus=%4 interactive
我的python代码:
os.system("start cmd.exe /k C:/Users/username/desktop/file.bat" params)
其中:
params = [JobName, fname, str(numcpus), '1', 'C:/Abaqus_Jobs' + JobDir]
JobName = 'A2'
JobDir = 'Job1/input_files'
fnameUEL = 'routineUEL'
numcpus = 8
现在这段代码不起作用,因为params
是一个列表。如果我将其更改为:
os.system("start cmd.exe /k C:/Users/username/desktop/file.bat JobName fname str(numcpus) '1' 'C:/Abaqus_Jobs' + JobDir)
它也不起作用。我已经读过Windows中的cmd工作了:
Spaces in Program Path + parameters with spaces:
CMD /k ""c:\batch files\demo.cmd" "Parameter 1 with space" "Parameter2 with space""
但如果我尝试:
os.system("start cmd.exe /k ""C:/Users/username/desktop/file.bat" "JobName" "fname" "str(numcpus)" "1" "'C:/Abaqus_Jobs' + JobDir"")
它也不起作用。有任何想法吗?谢谢!
答案 0 :(得分:0)
解决它:
process = Popen(params , stdout=PIPE, stderr=PIPE, shell=True)
params = [['cmd', '/k', 'start', ....]]