Это потому, что переменные окружения подставляются, когда команда read . Для следующей команды:
for %%f in (%mytargetdir%\*config.xml) do (
set tmpfile=%%f.tmp
echo In loop %tmpfile%
)
вся команда (от for
до закрывающей скобки) читается и подставляется перед выполнением.
Вам нужно использовать отложенное расширение, например, с:
@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
Когда вы активируете отложенное расширение, маркеры "%"
продолжают работать так же, как и раньше, но вы можете использовать маркеры "!"
для отложенного расширения.