問題は、スクリプトの最後の 2 行を最後まで正常に実行するのに問題があることです。なぜそれが一番下でバグアウトしているのかについて 95% 混乱しています。
理想的には、両方のアプリを互いに独立して起動したいと考えています。スクリプトのすべての起動部分/行を取り出し、それらを新しいスクリプトに入れて、起動しようとしているファイルと同じディレクトリにある間に起動すると、両方のアプリを起動する subprocess.call を取得できます。(理想的には、PC のどこからでも実行できるようにしたい)
ところで、コマンドプロンプトで実行してテストすると、読み取り結果が空になります(奇妙な意味で機能しているように感じます)
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)
どんな助けも今すぐ信じられないほど役に立ちます
ありがとう
編集:ところで、起動コマンドだけを取得して新しいスクリプトに入れると(以下に投稿します)、一度に1つのアプリしか起動しません(最初のアプリが閉じられる/終了すると、2番目のアプリが起動されます.
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)
起動するアプリと同じフォルダーに配置すると、両方のアプリが起動します。(これは理想的ではありませんが、開始点です!)