批處理腳本-延遲環境變量擴展
阿新 • • 發佈:2018-06-22
輸出 batch new echo local ria 期望值 onos its 批處理(Batch)腳本,使用的是按行讀取的預處理方式。在for循環中,do後邊的空號中的內容是作為一行來處理的,所以在擴號裏的賦值後輸出操作中賦值是無效的,如果需要使賦值有效,需要啟用變量延遲(全稱延遲環境變量擴展),變量延遲中的變量不能使用%v%輸出,需要使用!v!輸出。
開啟變量延遲的方式:setlocal enabledelayedexpansion
1.for循環例:
錯誤:
@echo off
for %%i in (*.txt) do (
set v=%%i
echo %v%
)
pause
輸出:echo處於關閉狀態
正確:
@echo off
setlocal enabledelayedexpansion
for %%i in (*.txt) do (
set v=%%i
echo !v!
)
pause
輸出:xx.txt
2.體現預處理輸出和期望值不符合的例子:
錯誤:
@echo off
set v=1
set v=2&echo %v%
pause
輸出:1
正確:
@echo off
setlocal enabledelayedexpansion
set v=1
set v=2&echo !v!
pause
輸出:2
批處理腳本-延遲環境變量擴展