我有一個文件夾與多個文件。所有文件名看起來像:如何使用命令提示符重命名名稱列表的文件?
"1 зелен.doc"
"2 будда.doc"
"3 конфуций.doc"
所有文件都在都在名稱的開頭第一個數字的順序。 我有一個文件名列表,包含在文本文件中。文本文件中的每一行也是按順序排列的。因此,第一行是第一個文件名的名稱,第二行是第二個文件名,依此類推。 如何使用命令提示符重命名文件?
非常感謝!
我有一個文件夾與多個文件。所有文件名看起來像:如何使用命令提示符重命名名稱列表的文件?
"1 зелен.doc"
"2 будда.doc"
"3 конфуций.doc"
所有文件都在都在名稱的開頭第一個數字的順序。 我有一個文件名列表,包含在文本文件中。文本文件中的每一行也是按順序排列的。因此,第一行是第一個文件名的名稱,第二行是第二個文件名,依此類推。 如何使用命令提示符重命名文件?
非常感謝!
@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!"
)
)
假設文件名列表對應一個目錄列表正好,你可以順手把文本文件的內容到一個數組做到這一點,一個目錄列表到另一個數組,然後通過兩個陣列與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
文件並運行它。當您滿意時,您可以在ren
之前刪除echo
,您的結果將成爲您的意願。
非常感謝Rojo! – 2014-11-26 11:23:45
這對我來說是俄羅斯人! **':)'** – Aacini 2014-11-24 19:40:09
對不起,我從來沒有學過英文 – 2014-11-26 15:44:13
我是說,文件名! ';)' – Aacini 2014-11-26 17:28:54