@pkring

Как переименовать файлы с помощью bat-файла?

5c405c4004b89363498618.jpeg
Есть бат-файл, который должен пройтись по всем папкам (имена папок всегда разные), которые лежат в одной директории с ним, и в каждой папке находится файл index.txt, который и нужно переименовать в content.txt. Как это сделать?
  • Вопрос задан
  • 7714 просмотров
Решения вопроса 1
axifive
@axifive
Software Engineer
forfiles /S /M index.txt /C "cmd /c rename @file content.txt"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ae_ph
@ae_ph
I'm a owl )
Вот моё решение это не ответ на вопрос, но я хочу оставить это сдесь, для похожих запросов.
Этот .bat файл переименует .Jpg файлы из папки Result вот в такие файлы file-000.jpg, file-001.jpg, file-002.jpg
Папка Result находится рядом с bat файлом.
Изначально в папке Result имена у .Jpg файлов могут быть абсолютно разными.. Не имеет значения.
setlocal enabledelayedexpansion
cd /d Result
set "count=1000"
set a="*.jpg"
for /f "usebackq delims=*" %%f in (`dir /b /o:-d %a%`) do (ren "%%f" file-!count:~1!.jpg
set /a count+=1
)
pause


SetLocal EnableDelayedExpansion Раскрытие переменных через знаки (!)
cd /d Result заходим в папку Result
set "count=1000" переменная в которой я обозначил количество нулей file-001.jpg
set "count=1000" Отсчёт начинается с file-000.jpg затем file-001.jpg и т.д.
set "count=1001" Отсчёт начинается с file-001.jpg затем file-002.jpg и т.д.

set a="*.jpg" переменная обозначает какие файлы ищем.

(`dir /b /o:-d /tc %a%`)
dir - Позволяет отобразить список файлов и подкаталогов. Далее сортируем.
/b - Вывод только имен файлов.
/o:-d - Сортировка списка отображаемых файлов в обратном порядке ( от новых к старым ).
/o:d - Сортировка списка отображаемых файлов ( от старых к новым ).
Если вам нужно изменить порядок сортировки файлов.

%a% - Вызываем переменную

usebackq Задает возможность использования кавычек для имен файлов Такие вот> ".
Задает исполнение строки, заключенной в обратные кавычки, как команды Такие вот> `,
а строки в одиночных кавычках — как команды в символьной строке Такие вот> '.

delims=xxx Задает набор разделителей. Заменяет набор разделителей по умолчанию, состоящий из пробела и символа табуляции.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы