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

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。