【Python】バッチファイルで実行する方法をわかりやすく解説

はじめに

Windowsのバッチファイルを使ってPythonスクリプトを動かしたいと考える方は多いのではないでしょうか。

例えば、Pythonで書いたプログラムをもっと手軽に起動できるようにしたり、Windowsのタスクスケジューラを使って定期実行したいといった場面があるかもしれません。

実は、バッチファイルを使えば、Pythonのプログラムを1行のコマンドで実行できるのでとても便利です。

このように一度設定しておけば、わざわざコマンドプロンプトやPowerShellを立ち上げて打ち込みをする必要がなくなり、業務自動化の第一歩にもなります。

ここからは、Python バッチファイル 実行という手法を分かりやすく解説していきます。

この記事を読むとわかること

  • Windowsのバッチファイルとは何か、どのようにPythonスクリプトを動かすか
  • 簡単なバッチファイルの作り方と実行例
  • バッチファイルを活用するときの注意点やエラー回避のヒント
  • Windowsのタスクスケジューラを使った応用的な自動化の考え方

Pythonバッチファイル実行の概要

バッチファイルとは、Windows上で複数のコマンドをまとめて実行できるテキストファイルです。

拡張子は.bat.cmdを使います。

ダブルクリックするだけで内部に書かれた命令が順番に処理される仕組みが特徴です。

Python バッチファイル 実行は、これらバッチファイルのコマンドの中にpythonの実行命令を組み込むことで、Pythonスクリプトを簡単に起動できるようにする方法を指します。

プログラミング初心者の方でも、バッチファイルの仕組みを理解すればスムーズに自動化を始められるでしょう。

Pythonスクリプトとバッチファイルの関係

Pythonスクリプトは拡張子が.pyのテキストファイルです。

普段はコマンドプロンプトやPowerShellで以下のように打ち込んで実行しているかもしれません。

python your_script.py

しかし、同じコマンドをバッチファイルに書いておくと、アイコンをクリックするだけで同じ処理が実行できます。

複数のコマンドを一度に実行するときにも便利で、データ前処理から後続の処理までまとめて自動化できるようになります。

Pythonバッチファイルでの動作イメージ

例えば、日次で行うレポート作成やデータ収集などをPythonで書いている場合、バッチファイルをダブルクリックするだけで一連の処理を完了させられます。

業務の中で「出社後に毎日同じコマンドを打って起動する」ような作業がある場合、バッチファイルにまとめるだけで手間の削減につながります。

さらにタスクスケジューラで定期実行すれば、朝の時間にプログラムを走らせて、結果だけを確認するといったワークフローを作ることも可能になります。

Pythonバッチファイル実行の準備

バッチファイルを利用してPythonを実行するには、Windowsの環境変数にPythonへのパスが通っている必要があります。

もしパスが通っていれば、どのディレクトリからでもpythonコマンドを呼び出すことができるため、バッチファイルでもスムーズに動作するでしょう。

パス設定

WindowsにPythonをインストールするときに、インストーラの設定で「パスを通す」オプションが用意されることがあります。

これを有効にしておけば、基本的にコマンドラインでpythonが使えるようになります。

もしバッチファイルでpythonを打ち込んだ際に「'python' は内部コマンドまたは外部コマンドとして認識されていません」というエラーが出る場合、パスが通っていない可能性があります。

パスを通すメリット

  • バッチファイル上でも環境設定を特に意識せずpythonコマンドを使える
  • 他のコマンドラインツールも同様に利用可能
  • タスクスケジューラでも同様の手順でPythonが起動できる

パスが通っていない場合は、Pythonのインストールフォルダを調べて環境変数PATHに追加してください。

Pythonスクリプトの作成

バッチファイルから起動したいPythonスクリプトを作成しておきます。

例えば以下のように、コンソールにメッセージを表示する簡単なコードを用意してみます。

print("データ分析を開始します。")
# ここで分析処理などを行う
print("データ分析が完了しました。")

このスクリプトをanalysis.pyというファイル名で保存しておきます。

あとは、このファイルを呼び出すようにバッチファイルを作ればOKです。

バッチファイル作成と実行例

それでは、実際に最小限のバッチファイルから作ってみます。

さらに、引数を渡す場合やエラーを検知する方法も合わせて解説します。

最小限のバッチファイルの例

以下のような内容をテキストエディタに入力し、拡張子.bat.cmdで保存してください。

@echo off
python analysis.py
pause

@echo offは、コマンドそのものを表示しないための記述です。

pauseは、処理後に「続行するには何かキーを押してください...」というメッセージを表示して停止するコマンドです。
これがあると、処理の結果を確認しやすくなります。

保存後、バッチファイルのアイコンをダブルクリックすると、同じフォルダにあるanalysis.pyが実行され、画面にメッセージが表示される流れです。

引数付きバッチファイルの例

Pythonスクリプト側で引数を受け取るケースもあります。

例えば、Pythonスクリプトでシステムの日付やファイル名などをコマンドライン引数として扱う場合、次のように書きます。

import sys

if len(sys.argv) > 1:
    value = sys.argv[1]
    print("引数として受け取った値は:", value)
else:
    print("引数がありません。")

これに対応するバッチファイル側のコード例は以下の通りです。

@echo off
python analysis.py 2025-02-18
pause

このようにバッチファイル内で値を指定しておけば、実行時に2025-02-18という文字列が引数として渡されます。

エラー処理の考え方

バッチファイルは、コマンド成功時にはERRORLEVELが0になり、失敗時には0以外になります。

たとえば、Pythonスクリプトが途中でエラーを起こした場合はバッチファイルも処理を続けないように制御を加えたいこともあるでしょう。

その際は以下のように書くことができます。

@echo off
python analysis.py
if %ERRORLEVEL% neq 0 (
    echo Pythonスクリプトがエラーを起こしました
    goto :END
)
echo Pythonスクリプトが正常に完了しました

:END
pause

%ERRORLEVEL%の値を確認することで、Pythonスクリプトの成否を確認することができます。
このように簡単なエラー検知を組み込むだけでも、バッチファイルによる制御がより便利になります。

バッチファイル活用の応用例

基本的な実行手順が分かったら、さらに応用して毎日定時にPythonスクリプトを動かすなど、自動化を進めたいと考える方も多いでしょう。

ここからは、もう少し発展的な使い方として、タスクスケジューラの設定や複数のPython処理を同時に実行する方法などを見ていきます。

Windowsタスクスケジューラでの自動実行

バッチファイルはWindowsの「タスクスケジューラ」と組み合わせることで、指定した時刻や間隔で自動的に起動できます。

たとえば、以下のような手順を思い描いてください。

  • 毎朝6時に在庫データを取得するPythonプログラムを実行
  • 実行結果をログとして保存する
  • そのログをメール送付するなどの処理

この一連のフローをバッチファイルにまとめ、タスクスケジューラでスケジュールを設定すれば、時間になったら自動で処理が走ります。

PythonがインストールされていないPCでバッチファイルを動かそうとするとエラーが起きることがあります。
実行環境のPythonのパスが正しく通っているか、また必要なライブラリがインストールされているか事前に確認するようにしましょう。

マルチプロセス実行

バッチファイルは連続でコマンドを実行しますが、Pythonのプログラムによってはマルチプロセスやマルチスレッドで動かしたいケースもあるかもしれません。

この場合、バッチファイル側で複数のPythonプロセスを同時に起動する形をとることも可能です。

たとえば、以下のように複数のコマンドを実行すると、それぞれ新しいウィンドウが立ち上がります。

start python task1.py
start python task2.py
start python task3.py
pause

タスクの内容によっては同時に実行させるメリットがありますが、CPUやメモリに負荷がかかりやすい点にも注意してください。

トラブルシューティング

バッチファイルを使い始めたばかりのときは、思わぬところでエラーや不具合が生じることがあります。

ここでは代表的なトラブルと対処策を挙げてみます。

システムパスが通っていない

すでに述べたように、'python' は内部コマンド...というエラーが出る場合は、Pythonのインストールディレクトリに対するパスが通っていない可能性があります。

Pythonをインストールし直したり、環境変数を追加・修正したりして対応しましょう。

パスを通さなくても、バッチファイル内でPythonのフルパスを指定する方法もあります。
例: C:\Users\YourName\AppData\Local\Programs\Python\Python.exe analysis.py

Pythonインタープリタに問題がある

例えば、複数のPythonバージョンがインストールされている環境だと、想定外のバージョンでスクリプトが実行されることがあります。

実行時のPythonパスが混在するとライブラリの依存関係に影響が出るため、環境をできるだけ整理しておくと安心です。

まとめ

バッチファイルとPythonを組み合わせると、ちょっとした自動化をすぐに始められるようになります。

コマンドプロンプトで入力していた内容をバッチファイルにまとめるだけで、アイコンをクリックするだけでPythonを起動できるようになるのは大きなメリットです。

さらにタスクスケジューラを使えば、定期的な実行や業務フローの自動化に発展させることもできます。

以下のポイントを押さえておくと、スムーズに導入できるでしょう。

  • バッチファイルは拡張子.bat.cmdで保存し、基本は@echo offpauseを入れておく
  • Pythonへのパスが通っていないとコマンドが認識されずエラーになる
  • 必要に応じて引数の受け取りやエラー検知を行う
  • 複数のPythonスクリプトをまとめて起動するなど、応用の幅が広い

一度覚えてしまえば、ほとんどのWindows環境で利用できるのがバッチファイルの利点です。

ぜひ、この記事を参考にPython バッチファイル 実行を実践してみてください。

Pythonをマスターしよう

この記事で学んだPythonの知識をさらに伸ばしませんか?
Udemyには、現場ですぐ使えるスキルを身につけられる実践的な講座が揃っています。