我有一个文件夹与多个文件。所有文件名看起来像:如何使用命令提示符重命名名称列表的文件?
"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