Пакетный файл переименовать с суффиксом как 01 02 03 04 и т. д.

у меня есть куча файлов с похожими ключевое слово

computer-stock-photo.jpg 
computer-stock-picture.jpg
computer-picture.jpg

то, что я хочу сделать, это суффикс серийный мудрый 2 цифр, как

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 и добавляет случайные числа, а не серийные.

15
задан DavidPostill
20.03.2023 18:30 Количество просмотров материала 2736
Распечатать страницу

2 ответа

Я считаю, что вы захотите опубликовать этот вопрос в Stack Overflow, если хотите, чтобы кто-то помог вам написать сценарий для ваших целей. Чтобы следовать наброскам этого форума здесь, я предоставлю вам ссылку на программу под названием Bulk Rename Utility. Это было рекомендовано в прошлом другими пользователями Stack Exchange и, похоже, соответствует вашим критериям.

http://www.bulkrenameutility.co.uk/Main_Intro.php

1
отвечен Raj Huff 2023-03-22 02:18

файл переименовать с суффиксом как 01 02 03 04 etc

выбросьте неподходящий скрипт. Вам не нужны случайные числа, и он не обрабатывает .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 файлы.

Читать Далее

  • индекс A-Z командной строки Windows CMD - отличный справочник для все окон УМК линия, связанная.
  • dir - отображение списка файлов и подпапок.
  • enabledelayedexpansion - отложенное расширение приведет к расширению переменных во время выполнения, а не при разборе время.
  • for / f - Loop команда против результатов другой команды.
  • параметры - аргумент командной строки (или параметр) - любое значение, передаваемое в пакетный сценарий.
  • set - отображение, установка или удаление переменных среды CMD. Изменения, внесенные с помощью SET, останутся только на время текущего сеанса CMD.
  • переменные - извлечь часть переменной (подстрока.)
1
отвечен DavidPostill 2023-03-22 04:35

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх