windowsのバッチファイルの困ったを解決する(echoとforループ編)
windowsのバッチファイルで簡易ツールを作成する機会があったが、いくつかハマってしまった点があったので、知見として整理する。
1.echoコマンドの使い方
echoコマンドだが、後ろにコマンドを記載しても特に解釈されることはないようだ。
つまりechoの文字列の中にコマンドになりうる箇所があっても、わざわざダブルクォーテーションでくくる必要はない。
次にechoの中にダブルクォーテーションや、括弧「(」や「)」がある場合は、「^」を使用すると特殊文字として解釈されずそのまま文字として利用可能。echoを使用している箇所で「~の使い方が誤っています」というようなエラーが出る場合も、このあたりを疑うと良い。
またecho内において文字列を結合したい場合も、pythonなどのように「+」を使う必要はなく、そのまま繋げればよい。
2.forで順番にリストファイルを処理する際に、先頭1行だけスキップしたい。
オプションにskipというものがあるがあるので、こちらを利用するとよい。わざわざ前処理をするより、簡単にできる。
3.for文でカウントアップを利用したい。
遅延環境変数を利用するとよい。遅延環境変数にしないと、ループの中ではずっと1のままとなってしまうので注意。