バッチファイル(その1)

17/09/17

IT・情報処理室のTです。

 最近、組版データの二次利用が増え、大量のテキストファイルを扱うことが多くなりました。
 ファイルの数が多くなるとファイルのリネームや、結合といった単純作業でも手作業ではかなり時間が取られてしまいます。
 こういう時に役に立つのがバッチファイルです。

 というわけで今回は単純作業の効率化を目指してバッチファイルについて勉強していきたいと思います。

 そもそもバッチファイルとは何なのかというと「行わせたい命令列をテキストファイルに記述したもの」で、これを実行すると書かれている命令をコマンドプロンプト上で処理します。
 これだけ聞くと難しそうな印象を受けますが、単純なものであればすぐにできるので、まずは一度バッチファイルを作成してみましょう。

今回は例としてテキストファイルを結合するバッチファイルを作成していきます。
①メモ帳を開きます(※テキストエディタであれば何でも構いません)。
copy *.txt all.txtと入力します。
③名前を付けて保存を選び、ファイル名を「○○○.bat」にして保存します。
そうすると、このように歯車のついたファイルが出来上がります。

undefined

 後はフォルダを作成し、その中にバッチファイルと結合したいテキストを入れて、バッチファイルを実行します。

undefined

 

するとフォルダ内の全てのテキストを結合した「all.txt」ファイルが新しく作成されます。

undefined

 

実際のデータはどうなっているかというと、

undefined

 

この2つのファイルが結合され、

undefined

 

このようになります。
ちなみに、各ファイルの最後に改行を入れ忘れると、

undefined

 

このようになってしまうので注意してください。

 それでは仕組みを簡単に説明していきます。
 今回バッチファイルに入力したテキストは3つに分けられます。

undefined

 

 まず①の部分はコマンドになります。今回使用した「copy」は本来ファイルを複製するコマンドですが、対象ファイルをフォルダ内全てにすることで結合することができます。
 次に②の部分は処理対象のファイル名になります。今回のようにファイル名を指定しない場合は、ワイルドカード「*」を使用します。
 ちなみにワイルドカードというのは、どんな文字や文字列にもマッチする特殊文字のことで、今回使用した「*」は文字列をマッチさせる場合に使用します。
 最後に③の部分は処理後に作成されるファイル名になります。ここで注意してもらいたいのが、既に存在しているファイル名を入れるとそのファイルを上書き保存してしまうため、必ず新規のファイル名を入れてください。

以上の3つの要素を組み合わせることで1つの命令になります。

この構成は他のコマンドにも使えるので、興味のある方は他のコマンドを調べて、いろいろ試してみてください。

次回はフォルダ操作について勉強していきたいと思います。