Переименование нескольких файлов в пакетном файле Dos - PullRequest
6 голосов
/ 15 июня 2011

Я хочу переименовать все файлы в папке * .txt, так что результат будет "1.txt", "2.txt" и "3.txt", ....

Как я могу это сделать?

Ответы [ 3 ]

11 голосов
/ 15 июня 2011

Следующее может выполнить то, что вы ищете. Он использует цикл for для перебора текстовых файлов и выполняет «вызов» другого бита пакетного файла для переименования и приращения переменной.

Редактировать Изменить математические операции на более чистые решения, предложенные Андреем.

@echo off
set i=1
for %%f in (*.txt) do call :renameit "%%f"
goto done

:renameit
ren %1 %i%.txt
set /A i+=1

:done
1 голос
/ 15 июня 2011

Я хочу переименовать все файлы в папке * .txt, поэтому результатом будут «1.txt», «2.txt» и «3.txt», ....

Какя могу сделать это?

::Setup the stage...
SETLOCAL ENABLEDELAYEDEXPANSION
SET folder=C:\This\Is\The\Folder
SET count=1

::Action
CD "%folder%"
FOR %%F IN ("*.txt") DO (
 MOVE "%%F" "!count!.txt"
 SET /a count=!count!+1
)
ENDLOCAL

Сокращения

SETLOCAL ENABLEDELAYEDEXPANSION
SET count=1
FOR %%F IN (C:\Path\To\File\*.txt) DO MOVE "%%~fF" "%%~dpF!count!.txt" & SET /a count=!count!+1
ENDLOCAL

Так что, если ваша папка содержит cat.txt, dog.txt, bird.txt, ninjaturtle.txt, она выведет 1.txt, 2.txt, 3.txt, 4.txt.

1 голос
/ 15 июня 2011

Сначала создайте список каталогов:

dir /b *.txt > myfile.cmd

Затем запустите UltraEdit (http://www.ultraedit.com/) и откройте файл.

Затем перейдите в режим столбцов, выберите все строки,и:

  • вставьте «RENAME» в начале каждой строки
  • вставьте «.TXT» в конце каждой строки (не забудьте поставить его достаточно далеко, если выочень длинные строки)
  • вставить номер (см. Столбец / Вставить номер в меню) прямо перед .TXT
...