如何在循環中保留多個變量(具有某個前綴)過去endlocal
?在循環中分配變量經過endlocal
變量在循環聲明中可見,但不是body。
下面是echo
而不是變量賦值的示例,以說明變量在for
正文中不可見。通常,一個變量賦值會去的地方echo
的:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set TB_1=test1
set TB_2=test2
set TB_ALL_VARS=
for /F "tokens=1 delims==" %%x in ('set TB_') do (
set TB_ALL_VARS=%%x !TB_ALL_VARS!
)
for %%x in (%TB_ALL_VARS%) do (echo %%x = !%%x!)
echo END LOCAL
endlocal & (for %%x in (%TB_ALL_VARS%) do (echo %%x = !%%x!))
輸出:
TB_2 = test2
TB_1 = test1
END LOCAL
TB_2 = !TB_2!
TB_1 = !TB_1!
正如你所看到的,變量之前ENDLOCAL印刷好的,但ENDLOCAL後不打印。
有沒有一種方法可以保存像過去的endlocal這樣的變量?
我嘗試了兩種方法,但這些解決方案都沒有工作 – Rado 2015-02-23 23:35:05