Windowsバッチのすぐ使える雛形サンプル

技術者の方であれば、多くのプロジェクトで、Windowsバッチを使いますよね。

お仕事としてプログラムをしていない方でも、コンピュータの処理を自動化する仕組みである「バッチ」を作れるようになっていると、自分のルーティーンの効率化が図れます。

基本的な部分は共通処理としてどこでも使うので、雛形として載せておきます。

雛形Windowsバッチ

TEST_MAIN.bat」みたいに、.batの拡張子のついた適当な名前でファイルを作り、保存してください。

その後、下記のような内容をそのファイルに記述します。

@ECHO OFF
REM +--------------------------------------------------------------------+
REM | DESCRIPTION: | このバッチの説明
REM +--------------+-----------------------------------------------------+
 
REM 変数設定
set HOGE=変数の値
 
REM このバッチが存在するフォルダに移動し、そこを基点にする
REM cd /d %~dp0
pushd %~dp0
cls
 
 
REM ここらへんに処理を書く
 
PAUSE
EXIT
REM 処理結果を戻す場合は、「EXIT /b」に変更。

いくつかポイントがありますが、まずは、

@ECHO OFF

コマンドやその結果を表示させないようにします。これを指定することで、すべてのコマンドが画面に表示されて分かりにくくなるのを防ぎます。

REM

これを書いた行は、コメント行として無視されます。

set HOGE=変数の値

変数のセットを行います。他に変数がある場合は、増やして行きましょう。

REM cd /d %~dp0

上記の例では、REMでコメントアウトしていて有効になっていませんが、バッチファイルの置いてあるディレクトリに移動します。

「/d」オプションをつけると、ドライブがCやDなど、別のところにあっても移動可能です。これがついていないと、現在Cドライブにいて、Dなど、別ドライブにバッチがおいてある場合に対応できません。

コメントアウトしているのは、通常は、下記の「」の方が汎用性があるからです。

理由は後述します。

pushd %~dp0

バッチファイルのあるディレクトリをカレントディレクトリとします。

「pushd」コマンドは、ディレクトリのスタックに引数のパスを記憶してくれるものです。

なぜこのコマンドの方を使うかというと、UNCなどのネットワーク・フォルダにも対応でき、また、後続のバッチの中で、相対パスを使うことが可能になるからです。

cls

これは、コマンドプロンプトの画面を一旦クリアするコマンドです。

開始前に、画面をきれいにしておくためですが、お好みでどうぞ。

実行してみよう!

これらの記述が出来たら、コマンドプロンプトを開き、このファイル名を打ち込んでReturnすると、実行されます。

まだ何もやらない雛形バッチなので、何もおきませんが、これがエラー無く実行できれば、後は具体的な処理を記述していくだけで、様々な処理が自動化できます。