求个按列表批量重命名的批处理

2024-12-03 10:08:39
推荐回答(3个)
回答1:

假定你的目录是d:\sample,并且01-1这类文件夹下的下面没有其它文件夹,先进命令提示行用
dir d:\sample /s /b /ad > d:\dir.txt
将目录列表输出至dir.txt

进入Excel,打开a.txt,分隔符号,选中空格,确定后删除后面多出的列,仅留下第一列,然后用记事本打开上面的dir.txt,复制,选中excel中的b1,粘贴

现在A列应该是a.txt的第一列,B列应该是目录名

在C1输入="Ren """&B1& """ """&A1&""""
选中C1到C列的最后一行,比如C1到C100,按Ctrl+D

复制C列数据,在记事本中保存为一个批处理文件,即.bat文件,然后双击运行这个bat

ps:注意最好备备份一下你的以前的数据

回答2:

::在批处理中,使用类似于数组的变量记录文件夹名和A.txt文件第一列。
@echo off
setlocal enabledelayedexpansion
cd /d D:\新建文件夹 &rem 把这一行中的文件夹改为你的一批文件夹所在目录
set n=0
for /f %%i in ('dir /ad /b /o:n') do (
set /a n+=1
set a!n!=%%i
)
set n=0
for /f %%i in (A.txt) do (
set /a n+=1
set b!n!=%%i
)
for /l %%i in (1,1,%n%) do ren !a%%i! !b%%i!
pause

回答3:

呵呵,你这文件夹太有规律了,省事。把批处理、A.txt都放在那一堆文件所在的总文件夹下

@echo off
setlocal enabledelayedexpansion
set m=101
set n=1
set q=0
for /f "tokens=1" %%i in (A.txt)do (
ren !m:~1!-!n! %%i||(
set err=!err! !m:~1!-!n!&&set/a q+=1)
set/a n+=1
if !n!==7 (set n=1&set/a m+=1)
)
if %q% gtr 0 (
echo 下列文件夹可能不存在:
echo %err%
echo 请检查原因,其余已完成重命名
)else echo 已完成重命名
pause