MS-DOSでできること・その2「拡張子・ワイルドカードとバッチファイルについて」 【文学・歴史資料のデジタル加工入門4】 (木越 治)
●バッチファイルの実例2
私は、定期購読している学術雑誌の類は、散逸を防ぐためと場所の節約のためにスキャンして保存しているが、たとえば、「国語と国文学」誌は、次のように名前を付けて保存している。
国語と国文学・平成28年01月号.pdf
国語と国文学・平成28年02月号.pdf
国語と国文学・平成28年03月号.pdf
国語と国文学・平成28年04月号.pdf
…
ただ、以前に作業したものは機械まかせにした関係で、下記のように作成の日付が入っていてちょっと長すぎる名前になっている。
国語と国文学 平成11年 4月号2013年01月09日17時38分46秒.pdf
国語と国文学 平成11年 5月号2013年01月09日18時45分06秒.pdf
国語と国文学 平成11年 6月号2013年01月09日18時48分30秒.pdf
国語と国文学 平成11年 7月号2013年01月09日17時30分13秒.pdf
…
こういうのが80冊分くらいあり、以前から短く揃えたいと思いつつ、面倒なのでそのままにしてあった。が、この機会に、バッチファイルで処理することに挑戦してみた。以下、その作業の手順を、そのまま報告しよう。
目標は、
国語と国文学 平成11年 4月号…….pdf
という長いファイル名を、
国語と国文学・平成11年04月号.pdf
というふうに、「雑誌名・平成○(2桁)年○(2桁)月.PDF」の形式に揃えることである。
●実例2の作業手順1
なお、断わるまでもないだろうが、以下の作業はすべてエディター(秀丸)で行なっている。
作業の手順を箇条書きにしておくと、
1 ファイル一覧を作成する。
2 この一覧から変更したいファイル名のものだけを抜き出す。
(全部を示すと長くなるので、以下に示すときは一部分だけにする。)
3 それを一旦「File1.txt」として保存。
4 「File1.txt」を利用して、目的の新ファイ名一覧を作成し、「File2.txt」として保存。
5 「File1.txt」と「File2.txt」を利用して、名前を一括変更するためのバッチファイルを作成する。
となる。
1の作業は、前回説明した「Dir」コマンドをリダイレクトすることにより簡単に得られる。
4の作業のときには、この連載の(1)で述べた、正規表現を用いた置換を利用すると簡単である。
要するに、「号」という文字以後が不要なわけだから、
置換前「号.+.PDF」
置換後「号.PDF」
という置換を実行するだけである(「.」=任意の1文字、「+」=直前の文字の1回以上の繰り返しを指す)。
ファイル名のワイルドカードで説明した「*」を用いる場合は、置換前を「号*.PDF」とするたけでは駄目で「号.*.PDF」というふうに、「.」をつけてやらないといけない。(「+」が1回以上の繰り返しを意味するのに対し、「*」は0回以上の繰り返しを意味する)ファイル名のときと検索置換のときとでは「*」はちがう意味になると書いたのはこのことをさしている。
もちろん、この連載の(2)で紹介した「BOX範囲選択」を利用して作業する方法でもできるし、こちらでもたいした手間にはならない。
なお、エディターでファイル一覧の編集を始める前にまずやっておくべきことは、最初のファイル名一覧を作ったあと、きちんと「File1.txt」として保存し、これを利用して新しいファイル名を作り始めるときに、再度「File2.txt」と名前を付けて保存し直すことである。「ren」コマンドは、
ren 〈もとのファイル名〉 〈新しいファイル名〉
というのが基本書式である*。
*もとのファイル名は作成の際に必ず必要になるのであるが、しかし、こういう作業をするときは気が急いているものだから、その手順を飛ばして作業をすすめてしまい、改めて「dir」コマンドでもとのファイル一覧を作り直すことがよくある。今回も、「File1.txt」はどうやら「File2.txt」を作りかけた段階で保存したものらしく、最初に作ったバッチファイルではうまく動かなかった。なので、改めて「Dir」で作り直してから試みたら問題なく動いたのであった……。