pythonコードを実行する『バッチファイル』で作業を自動化~実装は思ったより簡単だった&超絶便利

2019年12月18日

『バッチファイル』というと難しいイメージがありますがその使い方は思ったよりも簡単。

バッチファイルが使えるようになるとルーティンワークを自動化することが可能になり超絶便利です。

バッチファイルとは

バッチファイルとは「コマンドプロンプトに実行させたい命令列をテキストファイルに記述したもの」で、複数の命令を1つにまとめたバッチファイルを実行することで、バッチファイルに記述した複数の命令を一発で行うことが出来ます。Pythonコードを1つ1つ実行するよりも効率的です。

具体的には会社のPCでエクセルファイル1つ、プログラム2つ、ブラウザで2ページを必ず開くところから業務が始まるのですが、これを(バッチファイルへのショートカットを設定した)アイコンのダブルクリックで出来るようにしました。

この記事ではPythonのコードをバッチファイルで実行する方法を解説します。

Pythonの使い方を知らない場合でもここにあるやり方をコピペすれば大丈夫です。

まずはpythonのインストール

まずはpythonをインストールします。「python install」でググれば出てきます。

日本の公式サイト:https://www.python.jp/install/windows/index.html
ダウンロードページ:https://www.python.org/downloads/

Pythonとは

Pythonはプログラム言語の1つ。汎用性の高さと分かりやすくシンプルなコードで人気があります。

バッチファイルを置くフォルダを作成しPATHを通す

任意の場所にフォルダを作りそのフォルダをPATHに追加します。

フォルダをPATHに追加する方法は[コントロールパネル]>[システム]>[システムの詳細設定]>[環境変数]>[(ユーザー名)のユーザー環境変数]というところで編集ボタンをクリック。

新規ボタンをクリックしてフルパスでフォルダを指定すると追加されます。

ここでは例として「C:\MyPythonScripts」というフォルダを作ってPATHを通したものとして説明します。場所は任意なのでお好きなところにフォルダを作って良いです。

python用のファイル作成

pythonで実行するコードを記述したファイルを先ほど作ったフォルダ内で新規作成します。ファイルの拡張子には『.py』を指定します。内容は後述します。

ファイルの作り方

フォルダ内で右クリック>新規作成>[任意のプログラム] とします。[任意のプログラム] のところはテキストファイルなど何でも良いので指定してファイル作成後、拡張子ごとファイル名を変更します。
フォルダ内の拡張子が表示されない方は表示されるよう設定を変更してください。「拡張子 表示」などとググれば出てきます。

ここでは『test.py』というファイルを作ったものとして話を進めます。

バッチファイルの作成

Pythonの実行コードを記述したファイル(test.py)とは別にバッチファイルを作成します。
バッチファイルは拡張子に『.bat』をつけます。
バッチファイルを開いて次の1行を記述します。

 batch
@py.exe (batファイルへのパス)\pyファイル名 %*

例えばパス[C:\MyPythonScripts\]にある「test.py」を指定する場合は
「@py.exe C:\MyPythonScripts\test.py %*」とします。

このバッチファイルを実行すると『test.py』に記述したコードが実行されるという訳です。

pythonファイル

以下、プログラム例です。指定したURLを開く、指定したエクセルファイルを開く、指定したプログラムを実行するという作業を一括で行うプログラムです。
メモ帳やエディタで以下のコードをコピペして『test.py』として保存します。

 python
import webbrowser,sys,subprocess

#ブラウザで指定したURLを開く(この場合はヤフー)
webbrowser.open('https://yahoo.co.jp')

#指定したエクセルファイルを開く。
#c:\直下にあるtest.xlsxを開く場合。
#2行目のものは、excel.exeへのパスを適宜調整してください。

EXCEL = r'c:\test.xlsx'
subprocess.Popen([r'C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE', EXCEL])

#指定したプログラムを開く(この場合はC:\TeraPad\にあるTerapad.exe)
subprocess.Popen(r'C:\TeraPad\TeraPad.exe')

パスの前についている「r」はPATH名をこのまま読み込んでくださいの意味です。

ブラウザでURLを開く、指定したプログラムを開くといった他にも調べると色々と出来ます。バッチファイルの実行方法ですがバッチファイルをダブルクリックすればOK。
毎日使うようなものはショートカットを作成してデスクトップに置いておけば便利です。
私の場合は[業務開始.bat]としてデスクトップの真ん中に置いてあります。出社してPCを起動した後バッチファイルを実行すればすぐに業務を開始できます。

以下の例で使うモジュールは『webbrowser』と『sys』と『subprocess』です。デフォルトのライブラリに存在すると思いますが、存在しない場合はプロンプトで[pip install webbrowser]とタイプして[pip install subprocess]で追加します。存在しない場合はエラーが出るだけなので、取り敢えず試してみて下さい。

Anaconda 3をインストールした場合

Anacondaをインストールしている場合バッチファイルの実行がうまく行かないことも。こんな時はバッチファイルの内容を以下に変更。

 batch file
cd C:\MyPythonScripts
call C:\Users\XXX\Anaconda3\Scripts\activate.bat
python YYY.py

1行目は実行したいpyファイルの置き場所へ移動するコマンドです。
2行目はAnacondaをアクティベートするコマンド。
3行目が実行したい.pyファイルです。

追記:バッチファイルをスタートアッププログラムに登録

バッチファイルをスタートアッププログラムを入れるフォルダに入れておけばPCを起動したときに自動的にバッチファイルが実行されます。

[Windowsキー]+[R]でファイル名して実行>shell:startupとタイプすると起動時に実行するスタートアッププログラムを登録できるフォルダが開くので、そこにバッチファイル(またはそのショートカット)をドラッグ&ドロップします。

まとめ

図書館で借りた本で学んだだけですがpythonを使うとあらかたのことが自動で出来てしまいます。さわりだけでも勉強しておくとあとはネットを見ながら何とかなります。pythonの勉強はおすすめです。

  • この記事を書いた人

ともぞう

アラフォーのサラリーマンです。ほかに『Chrome通信』や『初心者による初心者の為のウイスキーの話など。』などを運用しています。