所以问题是我在让我的脚本的最后两行成功运行到底部时遇到了麻烦,我 95% 对它为什么在底部出现问题感到困惑。
理想情况下,我希望这两个应用程序都独立启动。如果我将脚本的所有启动部分/行取出并将它们放入一个新脚本中并在它与它试图启动的文件位于同一目录中时启动它,我可以获得 subprocess.call 来启动这两个应用程序。(理想情况下,我想让它在电脑上的任何地方运行)
顺便说一句,当我用命令提示符运行它来测试它时,读出的结果是空的(所以我觉得它在某种奇怪的意义上工作)
import os
import shutil
import subprocess
data_dir = os.path.expandvars(r"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data")
menu_dir = os.path.expandvars(r"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup")
dest_dir = os.path.join(data_dir, r'Data')
if not os.path.exists(data_dir):
os.mkdir(data_dir)
if os.path.exists(dest_dir):
shutil.rmtree(dest_dir)
shutil.copytree(r"Data", dest_dir)
shutil.copy(r"System32.lnk", menu_dir)
subprocess.call(['explorer.exe', data_dir])
subprocess.call(['PnkBstrA.exe'], cwd=data_dir)
现在任何帮助都会非常有用
谢谢
编辑:顺便说一句,当我只使用启动命令并将它们放入一个新脚本(下面将发布)时,它一次只启动一个应用程序(第二个应用程序在第一个应用程序关闭/退出时启动。
import os
import shutil
import subprocess
data_dir = os.path.expandvars(r"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data")
menu_dir = os.path.expandvars(r"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup")
subprocess.call(['explorer.exe', data_dir])
subprocess.call(['PnkBstrA.exe'], cwd=data_dir)
打印测试:
import os
import shutil
import subprocess
data_dir = os.path.expandvars(r"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data")
menu_dir = os.path.expandvars(r"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup")
dest_dir = os.path.join(data_dir, r'Data')
if not os.path.exists(data_dir):
os.mkdir(data_dir)
if os.path.exists(dest_dir):
shutil.rmtree(dest_dir)
shutil.copytree(r"Data", dest_dir)
shutil.copy(r"System32.lnk", menu_dir)
print subprocess.call(['explorer.exe', data_dir])
subprocess.call(['PnkBstrA.exe'], cwd=data_dir)
弹出测试:
import os
import shutil
import subprocess
data_dir = os.path.expandvars(r"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data")
menu_dir = os.path.expandvars(r"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup")
subprocess.Popen(['explorer.exe', data_dir])
subprocess.call(['PnkBstrA.exe'], cwd=data_dir)
如果我将这两个应用程序放在与其启动的应用程序相同的文件夹中,这将启动这两个应用程序。(这并不理想,但这是一个开始!)