私は主に練習のために、この小さな .bat スクリプトを .py ファイルに書き直そうとしていますが、shutil モジュール全体をうまく動作させるのに苦労しています。コピーを使用するには多くの方法があるようです。削除およびディレクトリ作成。
しかし、私の主な希望は、誰かがこれらの基本的なコマンドを動作するスクリプトに変換できるようにすることです。そのため、他のスクリプトで作業している間に何かを始めることができ、最終的には使用を通じて理解できなくなることを願っています.
どんな助けでも素晴らしいでしょう!:)
SET USERNAME
:: Create new directory
md "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data"
COPY "Data" "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data"
COPY "System32.lnk" "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
start /d "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data" explorer.exe
start /d "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data" PnkBstrA.exe
起動の問題:
再投稿して申し訳ありませんが、スクリプトはスクリプトの最後にある両方のアプリケーションを起動できません。起動コマンドだけをスクリプトから取り出して、以下のような新しいスクリプトに入れます。最初のアプリが閉じられると、最初のアプリと次のアプリが起動します。
また、アプリを次々と起動するように設定されているため、同時に実行されないようです。
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)
編集:また、この編集された起動ファイルを、正しく機能するために起動するはずの2つのプログラムを含むフォルダーに直接配置する必要があります。
Popen テスト:
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)
Edit'd-PathName:
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([r'C:\C:\Users\Spanjer\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data\Data\PnkBstrA.exe'], cwd=data_dir)
Edit'd PathName CMD 読み出し:
C:\Users\Spanjer\Desktop>installtest2.py
Traceback (most recent call last):
File "C:\Users\Spanjer\Desktop\installtest2.py", line 9, in <module>
subprocess.call([r'C:\C:\Users\Spanjer\AppData\Roaming\Microsoft\Windows\Sta
rt Menu\Programs\Data\Data\PnkBstrA.exe'], cwd=data_dir)
File "C:\Python27\lib\subprocess.py", line 524, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python27\lib\subprocess.py", line 711, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 948, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
C:\Users\Spanjer\Desktop>
FINAL スクリプト 100% 動作中:
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.Popen([r'C:\Users\Spanjer\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data\Data\explorer.exe'], cwd=data_dir)
subprocess.call([r'C:\Users\Spanjer\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data\Data\PnkBstrA.exe'], cwd=data_dir)