3 回答

TA貢獻1853條經(jīng)驗 獲得超18個贊
記錄下來,更正后的腳本如下所示:
setlocal ENABLEDELAYEDEXPANSION
for %%f in (%MYTARGETDIR%\*config.xml) do (
SET TMPFILE=%%F.tmp
echo In loop !TMPFILE!
)
echo End loop %TMPFILE%
謝謝克里斯的幫助。

TA貢獻1876條經(jīng)驗 獲得超7個贊
這是因為讀取命令時會替換環(huán)境變量。對于以下命令:
for %%f in (%mytargetdir%\*config.xml) do (
set tmpfile=%%f.tmp
echo In loop %tmpfile%
)
for在執(zhí)行之前,將讀取并替換整個命令(從到右括號)。
您需要使用延遲擴展,例如:
@echo off
setlocal enableextensions enabledelayedexpansion
set full=/u01/users/pax
:loop1
if not "!full:~-1!" == "/" (
set full2=!full:~-1!!full2!
set full=!full:~,-1!
goto :loop1
)
echo !full!
endlocal
啟用延遲擴展后,"%"標(biāo)記仍然像以前一樣工作,但是您可以使用"!"標(biāo)記來執(zhí)行延遲擴展。
- 3 回答
- 0 關(guān)注
- 506 瀏覽
添加回答
舉報