[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

处理目录须注意》力求深层目录处理在前,否则其真实路径可能会被动态修改...
一般是用如下句式获取目录列表,即加持反向排序
   dir /b/s/ad|sort /r

TOP

回复 1# gddsssko

批处理脚本处理目录时避免踩雷》目标目录不能是当前目录,不能是加持保护权限的目录,不能包含子目录,否则系统会拒绝更名
代码中第2行假设被处理的目标目录的根目录均为 d:\test 可被楼主修改
如下代码存为test.bat
  1. @echo off &setlocal enabledelayedexpansion
  2. set/p "rootD=d:\test"
  3. for /f "delims=" %%D in ('dir /b/s/ad "%rootD%" ^|sort /r') do (
  4. set "d=%%~nxD" & for %%s in (
  5. "AAA/$aa1$"
  6. "BB/$bb1$"
  7. "CCCC/$cc2$"
  8. ) do for /f "tokens=1-2 delims=/" %%1 in ("%%~s") do if /i "!d!" neq "!d:%%1=!" (ren "%%~D" "!d:%%1=%%2!")
  9. )
  10. endlocal&exit/b
复制代码

TOP

回复 1# gddsssko

5楼代码中的5-7行替换词用/作分隔符,并用双引号包裹,以防替换词中包含空格和避免包含^(&)等特殊字符出错...

TOP

返回列表