9 最後に
MS-DOS の頃と違って、
現在のコマンドプロンプトのバッチファイルでは整数変数が使え、
その演算も行えるようになり、
さらに乱数も使えるようになっているので、
可能性がだいぶ広がりました。
しかし、まだ Unix のシェルスクリプトにはかなり劣る点があります。
- 「引用符」がちゃんと使える形にはなっていないので、
文字列変数、コマンドのパラメータ等に関する制限がある。
- while 文、switch 文がないので、if, goto に頼りがちになり、
スパゲッティ化しやすい。
- フィルタやバッチファイル用に用意されているコマンドが少ない。
- ヒアドキュメントが書けない。
- 長いコマンドを複数行に分けて書けない。
よって、本当に実用的なものを作るには、
バッチファイルと AWK やフリーソフトなどを組み合わせる必要があると思います。
AWK 1 つで、Unix にあるような基本的なフィルタやコマンド (wc,sed,uniq,grep,printf 等) はほぼ代行ができます。
ただ、バッチファイルで AWK を使う場合、
AWK スクリプトをバッチファイルと別に用意すると保守が面倒になりますが、
直接 AWK のコードをバッチファイルに書くには、
「引用符」と「複数行の記述」の問題があるためうまくいかない場合もありますし、
「ヒアドキュメント」が使えないので
バッチファイルからスクリプトを吐きだすのも簡単ではないですが、
echo で 1 行ずつ吐きださせることならできなくはないです。
次回はそのような話でも書いてみようかと思います。
竹野茂治@新潟工科大学
2014年5月2日