バッチファイルとは
バッチファイルとは、Windows環境で実行できるコマンド列を記述したテキストファイルのことです。バッチファイルは拡張子が「.bat」であるため、BATファイルとも呼ばれます。
バッチ処理とは複数のコマンドを順次実行することを指します。つまり、バッチファイルに上からコマンドを書いていけば、その順番で実行されるということです。頻繁に実行する処理の一連の流れをバッチファイルに記述しておけば、いつでもまとめてその処理を実行できます。
バッチファイルの操作はコマンドプロンプトで行うため、マウスを利用した処理は不可能です。しかし、逆にマウスを使わないのであれば大抵の処理は実現します。
バッチファイルのコーディングには、RubyやPythonといったスクリプト言語が用いられます。
バッチファイルで処理をするメリット・デメリット
バッチ処理のメリットは、一度バッチファイルを登録しておけば手間をかけずに実行できる点です。
たとえば、定期的にバックアップを取るバッチファイルを作成すれば、その都度人が操作しなくても自動でバックアップされます。業務時間外に実行するよう設定しておけば、リソースを効率よく使えるでしょう。また、実行するたびに操作しなくてよいため、人為的ミスが減るのもバッチ処理のメリットです。
一方、バッチ処理は人の目で確認しながら行うべき作業には向いていません。
自動で処理されるため、知らないところで問題が生じる恐れがあります。
また、バッチファイル作成者にしかプログラムの意図が分からない、ということが多いです。業務を引継ぐ際には負担がかかるでしょう。
バッチファイルの作成・操作方法
続いて、バッチファイルの作り方と操作方法を解説します。
1.拡張子を変更してBATファイルを作成する
バッチファイルはテキストファイルであるため、作成にはテキストエディタを利用します。ここではWindowsに標準搭載されているメモ帳を例に見ていきましょう。
メモ帳を開き、コマンド列を記述します。そして「名前を付けて保存」から、拡張子を「.bat」に変更して保存しましょう。ファイルの名前は「ファイル名.bat」となるはずです。このように保存したファイルを次に開いた際には、BATファイルとして実行されます。
では、次の項からはコマンド列の記述方法を見ていきましょう。
2.「@echo off」で実行中のコマンドを非表示にする
基本的に、バッチファイルの冒頭には「@echo off」と記述します。これは、それ以下に記述されるコマンドをすべて画面に表示させないコードです。この記述がなければ、処理を実行するたびにコマンドが画面に表示されることになります。
厳密には「echo off」が「以下のコマンドを非表示にする」記述です。「echo off」の前につける「@」は「行内のコマンドを非表示にする」記述です。「echo off」だけではそれ以下のコマンドしか消せず「echo off」自体が残るため、「@」を付けます。
「echo off」を使わず各コマンドの行頭に「@」を付ける手もあります。しかし、冒頭に「echo off」を付けるほうが簡便であるため、こちらの方法が一般的です。なお、確認が必要な処理ではあえてコマンドを消さないケースもあります。
3.「setlocal」で環境変数を設定する
「setlocal」と記述し、それ以下に環境変数(OSが管理している変数)を記述します。
単に環境変数を設定するだけであれば、「set」でも可能です。しかし、「set」ではそこで定義した環境変数が、ほかのバッチファイルにも及ぶ恐れがあります。たとえば、バッチファイルXからバッチファイルYを呼び出した際、XにもYの「set」内容が反映されてしまいます。
そのため、定義した環境変数がそのファイルにしか適用されない「setlocal」を使うのが一般的です。「setlocal」による環境変数の設定は、「endlocal」と記述するか、バッチが終了するまでローカル化されます。
4.「rem」でコメントを記述する
「rem」と記述した後ろに入力した文章はコメントとして扱われ、処理の実行には一切影響しません。何を書いても良いですが、基本的には冒頭と各処理の行で活用します。
冒頭では、そのバッチファイルの処理目的をコメントとして残します。何のために作ったバッチファイルなのか、後で分からなくならないようにするためです。
そして各処理の行では、その処理の内容を記入しておくと、バッチファイル作成者以外の人が見ても理解しやすくなります。
5.ファイル名を指定して実行する
作成したバッチファイルは、コマンドプロンプトからファイル名を指定するだけで実行できます。たとえば、ファイル名が「abc.bat」であれば、コマンドプロンプトで「abc.bat」あるいは「abc」と記入すれば実行できます。
ただし、これが可能なのは対象のバッチファイルがカレントフォルダ内にある場合のみです。カレントフォルダとは、現在開いているフォルダのことです。それ以外のフォルダにバッチファイルがある場合は、フルパスや相対パスで指定することで呼び出す必要があります。
6.コマンドライン引数を指定または参照する
コマンドライン引数とは、コマンドプロンプトでプログラムを実行する際、そのプログラムに対して渡す値のことです。コマンドプロンプトでバッチファイルを実行する際にも使われます。具体的な記述は以下のとおりです。
■ファイル名.bat 引数1 引数2 引数3 ……
このようにして与えられた引数は、バッチファイル側では%1、%2……という記述で受け取られます。バッチファイル側で%1と書いた部分には引数1、%2には引数2が代入されるということです。
この機能を活用すれば、1つのバッチファイルでもさまざまな引数を対象とした処理が実現します。
バッチファイルの作成を効率化するには、開発ツールの利用がおすすめです。以下の記事ではさまざまな開発ツールを比較して紹介していますので、ぜひ参考にしてください。
関連記事
watch_later
2021.12.07
【最新】おすすめの開発ツール21種を比較!機能や選び方も紹介!
続きを読む ≫
バッチファイルの書き方を理解し、的確に指示・実行しよう!
バッチファイルとは、一連の処理を記述したものであり、それをまとめて実行するためのテキストファイルです。バッチファイルで処理を自動化でき、人為的ミスや手間の削減に役立ちます。
Windows環境下ではメモ帳を使って作成可能です。コードを記入して拡張子を「.bat」に変更し、コマンドプロンプトから実行できます。
以上を踏まえ、バッチファイルの有効活用を目指しましょう。