変数のようなもの%SystemRoot%\blahblahblah
があります(たとえば、variable a
)。しかし、(展開せずに)echo !a!
戻ります。どうすれば拡張できますか?%SystemRoot%\blahblahblah
%SystemRoot%
質問する
135 次
1 に答える
2
変数を 2 回展開するサブルーチンを呼び出すトリックを使用できます。
@Echo Off
set a=%%SystemRoot%%\blahblahblah
call :reparse set b=%a%
echo value of a: %a%
echo value of b: %b%
goto :EOF
:reparse
%*
goto :EOF
:reparse
サブルーチンは、そのすべてのパラメーターを実行するだけです。最初の展開は呼び出しの実行時に発生し、2 番目の展開は %* が として解釈されるときに発生しset b=%SystemRoot%\blahblahblah
ます。
于 2012-12-21T10:45:00.960 に答える