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

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

●実例2の作業手順2

さて、「正規表現」なり「BOX範囲選択」を利用し、足りないところは、ふつうの置換や手作業などで、とりあえず、以下のように、変更したいファイル一覧(「File2.txt」)ができあがった。

国語と国文学・平成11年04月号.pdf
国語と国文学・平成11年05月号.pdf
国語と国文学・平成11年06月号.pdf
国語と国文学・平成11年07月号.pdf

これと、保存してあったもとのファイル一覧(File1.txt)を「ren」コマンドで一行に並べてしまえばいいわけだが、注意すべきなのは、もとのファイル名には全角及び半角の空白が含まれていることである。 Windows は、ファイル名に全角及び半角の空白が含まれることを認めているが、MS-DOSは認めていない(だから、いまでも、自分で付けるファイル名にはあまり空白を入れない傾向がある)。それを認めさせるには、ファイル名の前後を「”」(文字列として認識させる、という意味)でくくってやればいい。それを簡単にやるには、「File1.txt」に対して、

置換前「\n」(\nは「改行」を表す)

置換後「”\n”」

という置換を実行すればよい。これも連載の(2)で説明した方法なので、わからない人は該当箇所を読み直しておいてほしい。ただし、このままやると最初の行の行頭に「”」はつかないから、一行空行を設けてから実行するか、あとで確認し付加するようにしなければいけない。
さらに、このファイルの行頭に「ren 」(「ren」のうしろに空白を入れるのを忘れないように)というコマンド名のための文字列を付けるわけだから、さきほどの要領で、

置換前「\n」

置換後「\nren 」

実行すればよい*

*なお、置換前「\n」 置換後「”\nren “」 とやれば、一度ですむ。

こうした作業をすませてから、作成ずみの変更後のファイル一覧を「BOX範囲選択」を利用して貼り付けていけばよい。なお、新しいファイル名には、空白がないから「”」を付ける必要はないので、そのまま貼り付けていいのだが、「BOX範囲選択」のコピーを実行するときは、かなり横巾を長くとらないと失敗する。「秀丸」の場合は、一行の文字数を最大の4000字に設定しているが、他のエディターでも、できるだけ大きな文字数にしから作業する必要がある。
そして、新しいファイル名の一覧を「BOX範囲選択」コピーしてきて、最大のファイル名より少し大きめのカラムのあたりのところで、ペーストすればいいわけである。
「kokugoren.bat」という名前で作成したバッチファイルの内容は下記のとおりである。

===============================================
ren “国語と国文学 平成11年 4月号2013年01月09日17時38分46秒.pdf”    国語と国文学・平成11年04月号.PDF
ren “国語と国文学 平成11年 5月号2013年01月09日18時45分06秒.pdf”    国語と国文学・平成11年05月号.PDF
ren “国語と国文学 平成11年 6月号2013年01月09日18時48分30秒.pdf”    国語と国文学・平成11年06月号.PDF
ren “国語と国文学 平成11年 7月号2013年01月09日17時30分13秒.pdf”    国語と国文学・平成11年07月号.PDF
ren “国語と国文学 平成11年 8月号2013年01月09日17時33分43秒.pdf”    国語と国文学・平成11年08月号.PDF
ren “国語と国文学 平成11年 9月号2013年01月09日17時36分22秒.pdf”    国語と国文学・平成11年09月号.PDF
ren “国語と国文学 平成12年 10月号2013年01月10日19時38分24秒.pdf”    国語と国文学・平成12年10月号.PDF
ren “国語と国文学 平成12年 11月号2013年01月10日19時43分34秒.pdf”    国語と国文学・平成12年11月号.PDF
ren “国語と国文学 平成12年 12月号2013年01月10日19時50分32秒.pdf”    国語と国文学・平成12年12月号.PDF
===============================================

このファイルでは、「”」でくくったもとのファイル名と変更後のファイル名との間は半角4個分の空白しかないが、これは見やすくするために処理したからそうなっているだけで、実際の作業の時は半角20個分以上の空白があるはずである。もちろん、どんなにたくさん空白があっても、実行時には格別問題は起きない。