CUIでの処理を自動化するバッチコマンドについて解説する。よく使うコマンド列をバッチファイルにしておくと、すぐに実行できるし、タスクスケジューラなどで自動実行させることができる。
前回まではコマンドプロンプトの基本と代表的なコマンドについて紹介してきた。GUIでは面倒な処理も、コマンドプロンプトを利用すると、簡単に実行できる場合があることがお分かりいただけただろう。
ただこれまでは、コマンド入力を受け付ける、コマンドプロンプトで、キーボードから1つのコマンドを入力して実行していた。この方法では、複雑なパラメーター指定を毎回手入力しなければならないし、一連のコマンドを実行する場合も、手作業で1つずつ実行する必要がある。こんなときには、毎回手入力するのではなく、一連のコマンドをファイルに記述しておき、それをまとめて実行できる「バッチコマンド」(単に「バッチ」とも言われる)が利用できる。
バッチとは、簡単に言えばコマンドラインで利用するコマンドを1つのファイルにまとめて、簡単に実行できるようにしたものだ。人手を介さずに、コンピュータで自動的に処理させることをバッチ処理と呼ぶことがあるが、それをWindows OSで利用できるようにしたものをバッチという。
バッチを使えば、複雑なコマンドシーケンスであっても自動的に実行できる。CUIのコマンドを幾つも組み合わせなければならない処理でも、コマンド1つで実行できるようになる。また何度も実行するようなコマンドをバッチにしておけば、再実行も容易である。
また、たとえ非常に簡単な処理であっても、オプション指定が面倒だとか、パラメーターを覚えにくコマンドであっても、バッチにしておけばすぐに起動できるだろう。
バッチで実行するコマンド列を保存したファイルを「バッチファイル」という。実行するコマンドをテキストエディタで記述し、テキスト形式のファイルとして保存すればバッチファイルになる。
バッチファイルの拡張子は.cmdか.batである。どちらを使ってもよいが、今なら.cmdがよいだろう(MS-DOS時代は.batしか使えなかった)。
バッチファイルには、基本的には1行に1コマンドずつ記述する。コマンドプロンプト上で入力するようなコマンド文字列を1行ずつ、そのまま記述すればよい。パイプやリダイレクトなどもそのまま使える。
バッチファイルは1行ずつ取り出してコマンドプロンプトで処理される。さらにifやgotoといった制御文を使えば複雑な処理や条件判断などもできるが、今回これらの説明は割愛する。興味がある人は、以下の記事を参照されたい。
バッチとはどのようなものか理解するために、まずは簡単なバッチファイルの例を示しておこう。
これは、現在の日時とカレントフォルダにある*.log/*.dataというファイル名の一覧情報をfilelist.txtというファイルに保存するだけの例である。処理内容は次の通りだ。
moveはファイルの移動コマンドだが、「/y」オプションで、ファイルが存在していても上書きするように指定している。
「echo 〜〜」は指定されたメッセージを表示するコマンドだが、メッセージの途中にある「%date%」「%time%」は、それぞれ、現在の日付と時刻を表す表記である。
バッチファイルの実体は、単なるテキストファイルである。なのでテキストエディタを開いてコマンド列を入力すればよい。
例えばメモ帳を開いて上記のリストを「filelist.cmd」というファイルとして保存してみよう。保存場所はどこでもよいが、ここではユーザーのドキュメントフォルダ(C:\Users\user01\Documents)に保存している。
作成したコマンドは、コマンドプロンプト上で「filelist」と入力すると実行できる。
Copyright© Digital Advantage Corp. All Rights Reserved.