[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 yhcfsr 于 2018-3-15 14:46 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('dir /ad/s/b^|sort /r') do (
  3. set "$=%%~na#"&set len=0
  4. setlocal enabledelayedexpansion
  5. for %%b in (4 2 1)do if !$:~%%b^,1!. NEQ . set/a len+=%%b&set $=!$:~%%b!
  6. if !len! equ 1 ren "%%a" "000%%~na"
  7. if !len! equ 2 ren "%%a" "00%%~na"
  8. if !len! equ 3 ren "%%a" "0%%~na"
  9. endlocal
  10. )
  11. pause
复制代码
关键是sort /r
dir打印目录列表后,这张表就被保存了。你的代码先命名前级目录,这时子目录的实际路径已变。
而dir之前保存的目录列表还是原来的,CMD还是按原来的路径去命名子目录,这里就会提示找不到路径,重命名失败。
解决方法是逆序排列,让子目录排在前面。先重命名子目录,再命名母目录,就没问题了。
1

评分人数

TOP

返回列表