For %%a in (*.jpg) Do ( - говорит, получить список каталогов каждого файла с расширением jpg и дать мне текущее имя в переменной %%a и сделать что-то (что следует в скобках). Я не уверен, откуда будет Access Denied , возможно, вам не хватает прав файловой системы для переименования одного или нескольких файлов.
Реальное усилие этой команды исходит от enabledelayedexpansion который позволяет переменной заменить синтаксис.
Ren "%%a" "!File:%Pattern%=%Replace%!" - Часть переименования может быть упрощена до ren this that ... хитрость в том, что второй блок с восклицательными знаками ... запускает замену переменных.
"!File:%Pattern%=%Replace%!" - для переменной File (задайте в строке выше полный путь и имя файла текущего файла в цикле for - что необязательно в этом списке каталогов) замените все вхождения Pattern на Replace . Pattern строке 5 для шаблона задано переименование, а для повторного использования в строке 6 задано Replace поэтому эта команда говорит: в указанном имени файла замените все вхождения строки переименовывать на повторное использование .
Чтобы скомпилировать все это:
Для всех файлов с расширением jpg в текущем каталоге
Переименуйте файл, чтобы все вхождения строки rename теперь для reuse
for /f для чтения текстового содержимого одного или нескольких файлов построчно - так что нет, это вам здесь не поможет.
Откуда этот nul ?