最新の投稿

HKU\.Defaultはデフォルトユーザのものではない。

HKU\.DEFAULT(HKEY_USERS\.DEFAULT)は、あちこちで間違った認識をされている。HKU\.DEFAULT(HKEY_USERS\.DEFAULT)は、デフォルトユーザとかテンプレートユーザと呼ばれるアカウント(=今後作成されるユーザアカウントの初期設定)...

2013/09/07

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していった先でもローカル変数のままとなる。

0 件のコメント: