您好,登錄后才能下訂單哦!
批處理(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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。