Переменная пакетного расширения не может быть использована в функции замены подстроки

Я начинающий, моя задача как-то связана с переименованием файлов в папке, в первую очередь вот часть моего кода:

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!=%%"
)
Другие вопросы по тегам