如果我运行我的脚本,' test.py'在silent_install文件夹所在的同一目录中(c:\ users \ test_user \ desktop \ dist),程序的行为与使用该目录外的silent_install文件夹运行它的行为不同。如果我像这样运行它,程序将保持循环而不会完成。
#test.py
def proc_check(proc):
exists = []
for p in psutil.process_iter():
if p.name() == proc:
exists.append(p)
if not exists:
return False
return True
#uninstall program silently (doesn't work)
while os.path.exists(r"c:\program files\foobar"):
subprocess.Popen([r"c:\users\test_user\desktop\dist\silent_install\setup.exe",
"/s",
"/f1c:\\users\\test_user\\desktop\\dist\\silent_install\\uninstall.iss"])
#check if setup is running before continuing
while True:
if proc_check("setup.exe") == False:
break
但是,如果我以这种方式运行它(使用在c:\ users \ test_user \ desktop \ dist之外的silent_install文件夹),程序的行为方式与我想要的一样,静默卸载程序实际上可以正常工作。
#uninstall program silently (works like this)
while os.path.exists(r"c:\program files\foobar"):
subprocess.Popen([r"c:\users\test_user\desktop\silent_install\setup.exe",
"/s",
"/f1c:\\users\\test_user\\desktop\\silent_install\\uninstall.iss"])`
有谁知道为什么要这样做?