Скрипт пакетного переименования файлов

Я пытаюсь переименовать кучу файлов, и я могу сделать это либо вручную, либо с помощью пакетного скрипта. Пакетный скрипт был бы безумно проще.

Мне нужен скрипт, чтобы переименовать все файлы в папке, чтобы они имели фамилию + индекс. Таким образом, вывод будет выглядеть как sample1.exe, а образец будет фамилией с индексом 1. Мне также нужно, чтобы этот индекс увеличивался после того, как каждый файл был назван, чтобы избежать дублирования. Я искал в Google, но не знаю достаточно, чтобы собрать один из них вместе. У кого-нибудь есть предложения?


person user1132897    schedule 30.05.2012    source источник


Ответы (1)


Если ни одно имя файла никогда не будет содержать ! в имени, то

@echo off
setlocal enableDelayedExpansion
set "surname=surname"
set "index=0"
for %%F in (*) do (
  set /a "index+=1"
  ren "%%F" "!surname!!index!%%~xF"
)

Если имя файла может содержать !, то

@echo off
setlocal disableDelayedExpansion
set "surname=surname"
set "index=0"
for %%F in (*) do (
  set "old=%%F"
  set "ext=%%~xF"
  set /a "index+=1"
  setlocal enableDelayedExpansion
  ren "!old!" "!surname!!index!!ext!"
  endlocal
)
person dbenham    schedule 30.05.2012