Пакетное переименование файла с суффиксом 01 02 03 04 и т. Д.
У меня есть куча файлов с похожими ключевыми словами, как
computer-stock-photo.jpg
computer-stock-picture.jpg
computer-picture.jpg
То, что я хочу сделать, это суффикс серийных двухзначных чисел, таких как
computer-stock-photo-01.jpg,
computer-stock-picture-02.jpg,
computer-picture-03.jpg
Также пакетный скрипт должен работать с любым расширением, таким как jpg или png.
Сценарий, который я попробовал:
@echo off
setlocal disableDelayedExpansion
set "chars=0123456789"
for /f "eol=: delims=" %%F in ('dir /b /a-d *.jpg') do call :renameFile "%%F"
exit /b
:renameFile
setlocal enableDelayedExpansion
:retry
set "name="
for /l %%N in (1 1 8) do (
set /a I=!random!%%36
for %%I in (!I!) do set "name=!name!!chars:~%%I,1!"
)
echo if exist !name!.jpg goto :retry
endlocal & ren %1 %name%.jpg
Вышеприведенный скрипт работает только для jpg и добавляет случайные числа, а не серийные.
2 ответа
Я думаю, что вы захотите опубликовать этот вопрос в переполнении стека, если вы хотите, чтобы кто-то помог вам написать сценарий для ваших целей. Чтобы следовать плану этого форума, я предоставлю вам ссылку на программу Bulk Rename Utility. Это было рекомендовано в прошлом другими пользователями Stack Exchange и, кажется, соответствует вашим критериям.
Переименование файла с суффиксом 01 01 03 04 и т. Д.
Выбросьте свой неподходящий сценарий. Вам не нужны случайные числа, и это не обрабатывает .png
файлы.
Я написал новый скрипт с нуля, так как это было проще, чем пытаться исправить свой сломанный скрипт.
Используйте следующий пакетный файл:
@echo off
setlocal enabledelayedexpansion
rem initialise counter
set /a "x=1"
rem process jpg and png files
for /f "usebackq tokens=*" %%i in (`dir /b *.jpg *.png`) do (
rem split into name and extension
set _name=%%~ni
set _ext=%%~xi
rem pad the counter to 2 digits
set "y=0!x!"
set "y=!y:~-2!"
rem do the rename
ren "%%i" "!_name!-!y!!_ext!"
increment counter
set /a "x+=1"
)
endlocal
Ограничения:
- Только процессы
.jpg
а также.png
в текущем рабочем каталоге. - Только процессы до
99
файлы.
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- dir - Показать список файлов и подпапок.
- enabledelayedexpansion - отложенное расширение приведет к тому, что переменные будут расширяться во время выполнения, а не во время разбора.
- for / f - Циклическая команда против результатов другой команды.
- параметры - аргумент командной строки (или параметр) - это любое значение, переданное в пакетный скрипт.
- set - отображать, устанавливать или удалять переменные окружения CMD. Изменения, сделанные с помощью SET, будут сохраняться только в течение текущего сеанса CMD.
- переменные - извлекать часть переменной (подстроку).