1. 程式人生 > >批處理腳本-延遲環境變量擴展

批處理腳本-延遲環境變量擴展

輸出 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


批處理腳本-延遲環境變量擴展