変数のようなもの%SystemRoot%\blahblahblahがあります(たとえば、variable a)。しかし、(展開せずに)echo !a!戻ります。どうすれば拡張できますか?%SystemRoot%\blahblahblah%SystemRoot%
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 に答える