有1000多个文件夹(是文件夹)要批量字典式改名,求一个bat批处理命令一键批量修改。内详——

比如我随意举个例子,这些文件夹(是文件夹)为——

中国12
法国12
德国45
英国45
日本78
蒙古78
荷兰36
古巴36
波兰12
俄国78
约旦45
美国36
…………

这样1000多个文件夹
现在求一键bat批处理命令,要将所有文件中的12改为ab 45改为cd 78改为ef 36改为gh
即修改以后变为——

中国12——>中国ab
法国12——>法国ab
德国45——>德国cd
英国45——>英国cd
日本78——>日本ef
蒙古78——>蒙古ef
荷兰36——>荷兰gh
古巴36——>古巴gh
波兰12——>波兰ab
俄国78——>俄国ef
约旦45——>约旦cd
美国36——>美国gh
………… …………

由于文件有1000多个 要替换的12 45 78 36只是举例子 不限于只这4个要改
所以跪求高人指点 一个批处理命令 实现一键自动字典式自动批量改名

第1个回答  2013-12-29
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /ad /b') do (
  set str=%%i
  if "!str:~-2!"=="45" ren "%%i" !str:45=cd!
  if "!str:~-2!"=="78" ren "%%i" !str:78=ef!
  if "!str:~-2!"=="36" ren "%%i" !str:36=gh!
)
pause

你好,如果你要修改的文件夹的都在同一个目录下,没有子目录的话,可以试试这个批处理

第2个回答  2013-12-29
@echo off&setlocal enabledelayedexpansion
set dict12=ab
set dict45=cd
set dict78=ef
set dict36=gh
for /r /d %%a in (*.*) do (
set "folder=%%a"
for /f "tokens=1* delims==" %%B in ('set dict') do (
set "key=%%B"
set "key=!key:~3!"
call :getdir  "!key!" "%%C"
)
move "%%a" "!folder!"
)
pause&exit
:getdir
set "old=%~1"
set "replace=%~2"
set "folder=!folder:%old%=%replace%!"

本回答被提问者和网友采纳
第3个回答  2013-12-29
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /ad /b /s') do (
set var=%%~ni
set "var=!var:12=ad!"
set "var=!var:45=cd!"
set "var=!var:36=gh!"
set "var=!var:78=ef!"
ren "!var!" "%%i")

你给的条件中所谓的字典式,也太没规律了,没规律就没法写公式

相似回答