2013年9月 7日

Windowsバッチ

めったに作らないけど、わけあってWindowsのバッチをかきました。
少し学んだことがあったので、メモがてらに残しておきます。

ifやforの中では、遅延環境変数展開をしないといけないので、setlocal enabledelayedexpansionを宣言し、ブロック内では%variable%ではなく!variable!を使う。

ローカル変数を使うにはsetlocalとendlocalを使い、この2つの間でsetコマンドを使って変数を操作すると、ローカル変数になる。

setlocal enabledelayedexpansionの中では、変数はローカル変数になる。

endlocalするときに、外部に変数を持ち出したいときは、
endlocal && set variable1=%variable1% && set variable2=%variable2%
とすることで、外部に変数を持ち出せる。

setlocal~endlocalの中で、callをすると、callしていった先でもローカル変数のままとなる。

コメントする