C:\ somescript.pyにあるpythonスクリプトを実行する簡単なBATファイルを作成するにはどうすればよいですか?
c:\python27\python.exe c:\somescript.py %*
コマンドラインを開きます(⊞ Win+R、cmd
、 ↵ Enter)およびpython -V
と入力し、 ↵ Enter。
Python 2.7.1
のような応答が返されるはずです。
そうしないと、Pythonがインストールされていない可能性があります。最初にこれを修正してください。
Pythonができたら、バッチファイルは次のようになります。
@echo off
python c:\somescript.py %*
pause
これにより、スクリプトの終了後にコマンドウィンドウが開いたままになり、エラーやメッセージを確認できます。それに満足したら、「一時停止」行を削除し、終了するとコマンドウィンドウが自動的に閉じます。
pythonスクリプトの同じフォルダーで、次の2行を含むバッチファイルを開くだけです。
somescript.py
pause
バッチコードとpythonの両方を1つのファイルに入れる方法は次のとおりです。
0<0# : ^
'''
@echo off
echo batch code
python %~f0 %*
exit /b 0
'''
print("python code")
'''
はそれぞれpython複数行コメントを開始および終了します。
0<0# : ^
はより興味深い-バッチのリダイレクト優先順位のため、バッチスクリプトによって:0<0# ^
のように解釈されます。バッチスクリプトは、実行が画面に表示されないラベルです。末尾のキャレットは新しい行をエスケープし、2行目は1行目に添付されます。pythonの場合は、0<0
ステートメントとインラインコメントの開始になります。
クレジットは siberia-man になります
PythonをPATHに追加した場合は、次のように実行することもできます。
python somescript.py
--- xxx.bat ---
@echo off
set NAME1="Marc"
set NAME2="Travis"
py -u "CheckFile.py" %NAME1% %NAME2%
echo %ERRORLEVEL%
pause
--- yyy.py ---
import sys
import os
def names(f1,f2):
print (f1)
print (f2)
res= True
if f1 == "Travis":
res= False
return res
if __== "__main__":
a = sys.argv[1]
b = sys.argv[2]
c = names(a, b)
if c:
sys.exit(1)
else:
sys.exit(0)
pythonコードをバッチファイルで直接使用できます https://Gist.github.com/jadient/9849314 。
@echo off & python -x "%~f0" %* & goto :eof
import sys
print("Hello World!")
Pythonコマンドライン-xオプション の説明を参照してください。
これが現在のディレクトリとは異なるディレクトリにあるBATファイルの場合、「python:ファイル 'somescript.py'を開けません:[Errno 2] No such file or directory」のようなエラーが表示される場合があります。これは、%~dp0
( そのバッチファイルのドライブ文字とパス )を使用してBATファイルへの絶対パスを指定することで修正できます。
@echo off
python %~dp0\somescript.py %*
(この方法では、c:\
などを無視できます。おそらく、このスクリプトを移動する必要があるためです)
xxx.pyを開始
これは他のいくつかのファイルタイプに使用できます。
私はこれを行い、動作します:私はプロジェクトをDに持っています:バッチファイルはデスクトップにあります、同じドライブにある場合、最初の行を無視し、2行目のde Dディレクトリを変更します
2行目に、ファイルのフォルダーを変更し、フォルダーを配置します
3行目でファイルの名前を変更します
D: cd D:\python_proyects\example_folder\ python example_file.py
ECHO OFF
set SCRIPT_DRIVE = %1
set SCRIPT_DIRECTORY = %2
%SCRIPT_DRIVE%
cd %SCRIPT_DRIVE%%SCRIPT_DIRECTORY%
python yourscript.py`