よく利用するコマンドなどをバッチファイルにしておくと、毎回のようにコマンドを書く手間を省くことができる。また、タスクスケジューラーを利用した自動化を行う際もバッチファイルは活用できる。バッチファイルを理解する手始めとして、よく利用するコマンドをバッチファイルにしてみよう。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
コマンドと複数のオプション、対象となるファイルパスで長くなったコマンドラインをキーボードから打つのは煩わしい。毎日同じ処理を行わなければならない場合は、なおさらだ。
日本語入力でも、短文登録しておけば数文字の入力で目的の文が呼び出せるというのに、長いコマンドラインを短縮入力する方法はないのだろうか。実は「バッチファイル」という仕組みを使えば、定型のコマンドラインを短い入力で実行できる。
バッチファイルはあらかじめテキストファイル中にコマンドライン入力を記述しておくというものなので、単純な使い方ならば難しいことは何もない。バッチファイルは複数のコマンドを束ねて(batch=束ねる、1回分にまとめるという意味)実行できる仕組みである。本来は、一連のコマンド処理を一括実行する目的で使われるものだが、今回は取りあえず、1つのコマンドを短い入力で実行するために使ってみよう。
上司がニコニコしながらこちらに近づいてきた。
「今度入った新人社員にさぁ、報告書をテンプレからコピーして使わせたいんだけど、スマホ世代なので難しい操作はムリだってさ。何とかならないかなぁ?」
いわく、ドラッグ&ドロップだとテンプレファイルを移動して直接編集してしまう人がいる他、複数のウィンドウを開くと混乱してしまう人もいるからダメ。コマンドラインは長いキー入力なのでもっての外だという。アイコンのダブルクリックとかで何とかならないか、と。
さてどうしよう?
普段からよく利用している次のようなコマンドライン操作があるとしよう。
C:\Work>copy ..\テンプレ\報告書テンプレ.xlsx 報告書.xlsx
コマンドの意味は、カレントフォルダ(上のコマンドでは[Work]フォルダ)の親フォルダ(..)の下にあるフォルダ[テンプレ]の中に保存してあるExcelのブックファイル「報告書テンプレ.xlsx」を、カレントフォルダ(.)に「報告書.xlsx」というファイル名でコピーして使うというものだ。なお、こういうときはファイルをExcelブック形式ではなくExcelテンプレート形式で保存しておいた方が適切という話は、ここでは置いておく。
この入力を短くしたければ、あらかじめメモ帳で、このコマンドラインの内容を記述した短めのファイル名を持つテキストファイルを作成し、拡張子を「.bat」にして保存しておく。
そして、そのファイルを実行すればいい。Windows OSでは拡張子「.bat」のファイルがバッチファイルとして認識され、そのベース名をコマンドラインから入力することで、記載された内容が実行される。
先ほどの例では、次のような内容のファイルを作成して「cpex.bat」というファイル名で保存する。
copy ..\テンプレ\報告書テンプレ.xlsx 報告書.xlsx
そして、コマンドラインからベース名を指定すれば実行される。
C:\>cpex[Enter]
注意が必要なのは、バッチファイル中に記述する際、コマンドの途中で[Enter]キーを使って改行しないことだ。コマンド実行時のオプションやファイル名の指定、パイプラインやリダイレクトなどの記述も含めて、論理的な1行に納めておく必要がある。
なお、1行でコマンドが完結しているというルールさえ守れば、バッチファイル中に記述するコマンドは複数あっても構わない。その場合は、1行目から順に実行されていく。
このバッチファイルは、アイコンのダブルクリックで実行することもできる。ダブルクリックすると、一瞬コマンドプロンプトのウィンドウが表示され、コマンドが実行されてからウィンドウが閉じる。
先のバッチファイルは、動作内容が分かっている自分で使うなら問題はない。しかし、誰かに使ってもらうとなると、もう少し動作に関する情報を使い手に知らせた方が親切だろう。また、後からバッチファイルの中身を見る人のために記述内容にコメントを加えておくのもいい。そこでメッセージの表示やコメントを加えたものを次に示す。
Copyright© Digital Advantage Corp. All Rights Reserved.