2017-04-20 108 views
0

我有一个批处理文件,我试图用python运行,并且由于某种原因它不工作。 批处理文件指定路径,然后执行某个命令,就像这样:使用python脚本运行批处理文件

Path= %systemdrive%\somefolder\secondfolder\Step1 
setupEP.exe ADDLOCAL="tp" 

那么Python脚本应该这个文件,然后做一些其他的事情,这是无关紧要当前一些其他类似的文件。 问题是批处理文件没有被执行。 下面是我的Python脚本

def func1(): 

    os.popen(r"%systemdrive%\s1.bat") 
def func1(): 

    os.popen(r"%systemdrive%\s2.bat") 

list=[func1(),func2()] 

for i in list: 
    t1=threading.Thread(target=i, args=(1,)) 
    t1.start() 
    t1.join() 

如果我代替批处理执行一些随机循环,像

for i in range(0,60): 
    print i 

一切完美 帮助的人?

+2

不要覆盖'PATH'。更新它,而不是'设置“PATH =%systemdrive%\ somefolder \ secondfolder \ Step1;%PATH%”' – dcg

回答

2

.Thread应该接受一个可调用的对象,你是路过func1()它是对象后的结果被调用。

你基本上需要my_list = [func1, func2]

在你的情况下,批处理文件上脚本开始只运行一次,而不是在你的for循环。

+0

1.您如何解释,我的脚本运行到60? 2.这并不能解释为什么批处理文件没有被执行。他们应该至少执行一次 – Michael

+0

他们没有被执行,因为你只给他们打电话一次。你的for循环运行60次。传给他们一个可调用的! pass'func'不是'func()'。 –

+0

接受。谢谢。 – Michael

0

您应该尝试调用批处理文件而不是打开它。尝试类似

call("PathToFile/File.bat")