2014-11-24 2 views
0

У меня есть папка с несколькими файлами. Все имена файлов выглядят так:Как переименовать файлы со списком имен с помощью командной строки?

"1 зелен.doc" 
"2 будда.doc" 
"3 конфуций.doc" 

Все файлы в порядке первого номера, которые находятся в начале названий. У меня есть список имен файлов, которые содержатся в текстовом файле. Каждая строка в текстовом файле также в порядке. Итак, первая строка - это имя для первого имени файла, вторая строка - второе имя файла и так далее. Как переименовать файлы с помощью командной строки?

спасибо!

+0

Это русский для меня! ** ':)' ** – Aacini

+0

Извините, я никогда не изучаю английский –

+0

Я имел в виду, имена файлов! ';)' – Aacini

ответ

2
@echo off 
setlocal EnableDelayedExpansion 

rem The list of filenames will be read from redirected Stdin 
< filenames.txt (

    rem Process the files via FOR command 
    for %%a in (*.*) do (

     rem Read the next name from the list 
     set /P name= 

     rem Rename the file 
     ren "%%a" "!name!" 

    ) 
) 
+0

Мне это нравится лучше, чем у меня. Brilliant! – rojo

+1

Будьте осторожны с отсортированными числами. Список каталогов будет сортировать «11 xxxx» до «9 xxxx». Это может привести к неправильным именам. – dbenham

+0

Это потрясающе! Он выполняет свою работу. Отлично! Большое спасибо, Аасини! –

1

Предполагая, что список имен файлов соответствует каталог списка точно, вы можете сделать это, толкая содержимое текстового файла в массив, каталог списка в другой массив, затем циклически обоих массивов с for /L, как это:

@echo off 
setlocal enabledelayedexpansion 

set "count=0" 

for /f "delims=" %%I in (textfile.txt) do (
    set "to[!count!]=%%I" 
    set /a count+=1 
) 

set "count=0" 

for %%I in (*.doc) do (
    set "from[!count!]=%%I" 
    set /a count+=1 
) 

for /L %%I in (0,1,!count!) do (
    if exist "!from[%%I]!" (
     echo ren "!from[%%I]!" "!to[%%I]!" 
    ) 
) 

Сохраните этот скрипт в файле .bat и запустите его. Удалите echo до ren, когда вы удовлетворены своим результатом, будет то, что вы намерены.

+0

Большое спасибо, Рохо! –

Смежные вопросы