banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

[BATCH] enabledelayedexpansionを使用して、変数の遅延を有効にする批処理

単純な要件で、変数を一括定義し、演算して値を代入し、変数の計算結果値を取得する

方法: 1. SET /A を使用して式の中間計算結果を一時的に保存する 2. setlocal enabledelayedexpansion を使用して、ループ内で変数をリアルタイムに展開しないようにする 3. & を使用して式を 1 行に結合し、setlocal enabledelayedexpansion を有効にする。変数の遅延を開始

@echo on
set var4="test"
for /l %%i in (1,1,3) do set var%%i=%%i
echo %var1%
echo %var2%
echo %var3%
echo %var4%
setlocal enabledelayedexpansion
for /l %%j in (1,1,3) do ( set /a t= var%%j & echo !t! )
for /l %%j in (1,1,3) do (
set /a t= var%%j
echo !t!
)
endlocal

pause 出力 1 2 3 4

enabledelayedexpansion を無効にすると、出力は 4 4 4 4 になります

setlocal および enabledelayedexpansion についての詳細は、https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc772046(v=ws.11)?redirectedfrom=MSDN を参照してください。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。