在“setlocal enabledelayedexpansion”中設定變數適用于
set HASGCC=0
for /f "delims=" %%i in (...) do (
setlocal enabledelayedexpansion
set HASGCC=1
endlocal
)
但遺憾的是,后的回聲不會產生正確的值(始終為 0)。
echo Finished %HASGCC%
然后
if !HASGCC! == 0 >>"%PREFS_F...
被評估正確。
如何列印正確的值。
echo Finished !HASGCC!
結果是
完成!HASGCC!
uj5u.com熱心網友回復:
setlocal有或沒有EnableDelayedExpansion為變數創建一個新的范圍。
它復制所有變數,然后對這些副本進行所有更改。
Anendlocal離開此范圍并丟棄副本并丟棄所有更改。
對于某些變數操作,您必須為某些變數啟用延遲擴展,最好使用禁用的延遲擴展,但在它們之間切換的唯一方法是使用setlocal.
但在你的情況下,你似乎根本不需要它。
uj5u.com熱心網友回復:
通過洗掉解決它
setlocal enabledelayedexpansion
但不知道為什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/380729.html
標籤:批处理文件
上一篇:如何批量決議csv中的多行值
