Переменная пакетного расширения не может быть использована в функции замены подстроки
Я начинающий, моя задача как-то связана с переименованием файлов в папке, в первую очередь вот часть моего кода:
setlocal enabledelayedexpansion
set tempLogDate=0
set g=0
for /r %targetStore% %%i IN (*2013*.*) do (
set tempLogDate=9
set g=!g:%tempLogDate%=!
)
проблема в том, что переменная%tempLogDate% имеет значение 0 вместо 9, я знаю, что мне нужно использовать расширение переменных (которое у меня есть), но я не могу заменить код "set g =! g: %tempLogDate%.rar =!" в "установить g =! g:! tempLogDate!.rar =!", я пытаюсь выбрать escape-символ, но безрезультатно, ребята, пожалуйста, помогите мне.. спасибо заранее
1 ответ
Решение
Пожалуйста ищите delayed expansion
, setlocal /?
а также endlocal /?
, Пример:
@ECHO OFF &setlocal enabledelayedexpansion
set "tempLogDate=0"
set "g=0"
for /r %targetStore% %%i IN (*2013*.*) do (
set "tempLogDate=9"
CALL SET "g=%%g:!tempLogDate!=%%"
)