• twitter
  • facebook
文学・歴史資料のデジタル加工入門

MS-DOSでできること・その2「拡張子・ワイルドカードとバッチファイルについて」 【文学・歴史資料のデジタル加工入門4】 (木越 治)

●move コマンドによるファイルの整理

最初に挙げた移動コマンド「move」と、フォルダを作成する「md」というコマンドを組み合わせることにより、Word・Excel・一太郎・PDFファイルが混在するフォルダ(この連載で利用するファイル形式は、おおむねこれだけである)のなかを、それぞれのファイル別に整理・分類してみよう。
かりに、word ファイルは「word」というフォルダーに、Excelファイルは「Excel」に、一太郎は「1taro」に、PDFは「PD」というフォルダにまとめるとしよう。

MS-DOS上で実行するコマンドは、以下の8つである。

md word
md excel
md 1taro
md PDF
move *.doc  word
move *.xls   excel
move *.jtd   1taro
move *.PDF  PDF

●バッチファイルの作成へ

これら4つのコマンドを、そのまま8行に書いて、適当な名前(かりに「seiri」としよう)を付け、拡張子を「bat」とすれば、MS-DOSのバッチファイルという、立派な実行ファイルができあがる*

*なお、ここでは、すべてアルファベットにしたから問題は生じないが、フォルダ名やファイル名に日本語が含まれている場合は、前回述べたように、シフトJIS形式にしてで保存しないとバッチファイルとして動いてくれないから要注意。

バッチファイルに、メモを書き込むときには、「REM」(remindの略)を使うので(ふつうのテキストファイルのつもりで、いきなり文字を書いてしまうと、その一行はコマンドと解釈され、「コマンドが存在しない」というような表示が出る。)、そのコメントを書き入れて、バッチファイルらしく書いてみると、下記のようになるだろう。

「Seiri.bat」の内容
===============================================
REM  ファイルをフォルダごとに整理するために作成
REM  移動先フォルダの作成
md word
md excel
md 1taro
md PDF
REM  移動の実行
move *.doc  word
move *.xls   excel
move *.jtd   1taro
move *.PDF  PDF
===============================================

プログラムを書くとか、実行ファイルを作る、などというと、我々文系人間には関係ないことと敬遠するむきも多いだろうが、MS-DOSのバッチファイルは、MS-DOSのコマンドを書き並べていくだけのものなので、作るのも簡単だし、訂正するのも容易である。だから、毎日やるような定型的な作業や、定期的に実行するバックアップ作業などは、こういうふうにバッチファイルにまとめておけば、とても楽になるのである。

 

●バッチファイルの実例1

ファイル操作において、コピー・移動などは、エクスプローラーやキーボードによる操作、あるいは、前に紹介した「拡張コピー」などを利用すれば、それほど面倒な思いをせずに作業できるので、 MS-DOS でやると便利なのは、定期的にバックアップを取るときだろう。
以下は、xcopy を用いて、Dropbox内のファイルを外付けドライブにバックアップするためのものである。

「Dropback.bat」の内容
===============================================
xcopy C:\Users\OSAMU\Dropbox\*.* F:\Drive_D\保存資料\Osamu\2016  /D /S /E /H /C /Y /R
===============================================

Dropboxの中味を外付けハードディスクのひとつである「F」ドライブの「Drive_D」の「保存資料」の「Osamu」というディレクトリの中に年別に保存しているわけである。
xcopyにはさまざまなオプションがあるが、バックアップ用にはここで使っている「/D /S /E /C /Y 」くらいを指定しておけばいいだろう。それぞれは、

「/D」  新しいファイルだけをコピー

「/S /E」 (空のものも含めて)サブフォルダーもコピー

「/C」  エラーを無視してコピー

「/Y」  無条件上書きコピー

という意味のオプションである。ただ、こんなにたくさんのオプションを覚えておくのは大変だし、いちいち書くのも大変だから、バッチファイルを作成しておき、適当な間隔(1月くらい)を置いて実行するようにしておけばよい。