連載
» 2017年09月15日 05時00分 公開

超入門コマンドプロンプト:バッチコマンドで定型処理を行う (1/3)

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というファイルに保存するだけの例である。処理内容は次の通りだ。

  • 1行目:以前のファイルはold-filelist.txtとしてバックアップしておく
  • 2行目:実行した日時をfilelist.txtの先頭に書き込む
  • 3行目:dirの結果をfilelist.txtに追加する

 moveはファイルの移動コマンドだが、「/y」オプションで、ファイルが存在していても上書きするように指定している。

 「echo 〜〜」は指定されたメッセージを表示するコマンドだが、メッセージの途中にある「%date%」「%time%」は、それぞれ、現在の日付と時刻を表す表記である。

バッチファイルを作成する

 バッチファイルの実体は、単なるテキストファイルである。なのでテキストエディタを開いてコマンド列を入力すればよい。

 例えばメモ帳を開いて上記のリストを「filelist.cmd」というファイルとして保存してみよう。保存場所はどこでもよいが、ここではユーザーのドキュメントフォルダ(C:\Users\user01\Documents)に保存している。

メモ帳でバッチファイルを作成する メモ帳でバッチファイルを作成する
ここではコマンドプロンプトから直接メモ帳(notepad)を起動してバッチファイルを作成してみる。

 作成したコマンドは、コマンドプロンプト上で「filelist」と入力すると実行できる。

       1|2|3 次のページへ

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。