0

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

4

1 に答える 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 に答える