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

[文本处理] 文件目录名如何用批处理正则处理?

要求,把目录拖到批处理图标,按要求处理目录或文件名

文件名如(a10_XXX.DOC,B112_AAED.TXT)格式,目录就如D16_mm之类的,要求把a10_变为空值,重新命名文件名或目录名,如(a10_XXX.DOC变为XXX.DOC),处理可深入到子目录,现附以前求高手弄的一个批处理供参考修改,希望大侠能帮忙解决这个问题。
下划线前可能是不固定的字母数字组合
  1. @echo off
  2. rem 请不要修改本批处理,修改之后有可能运行不了
  3. rem 把要处理的文件夹拖到本批处理的图标上
  4. rem 如果是把文件拖到本本批处理的图标上,批处理不能正确执行
  5. mode con COLS=35 LINES=10
  6. call :tt
  7. setlocal enabledelayedexpansion
  8. :began
  9. cls
  10. for /f "delims=〓" %%i in ('dir "%~1\-*" /b /s') do  (
  11. set aa=%%~ni
  12. set aa2=%%~fi
  13. set aa2=!aa2:~-3!
  14. set aa=!aa:~1!
  15. attrib -r -s -h "%%~fi"
  16. echo  "!aa!%%~xi" >nul
  17. ren "%%~fi" "!aa!%%~xi"
  18. )
  19. shift
  20. if /i not "%~1" == "" goto began
  21. color 1b
  22. echo 文件已处理完
  23. echo 按任意键退出
  24. pause >nul
  25. goto :eof
  26. :tt
  27. title 批处理改名
  28. goto :eof
复制代码

正则处理啊?
需要处理文件夹还是文件呢?

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. if "%~1" == "" exit
  3. for /f "delims=" %%a in ('dir /b /s %1^|sort /r') do (
  4.     set "str=%%~nxa"
  5.     ren "%%a" "!str:*_=!"
  6. )
  7. pause
复制代码

TOP

terse 发表于 2014-9-3 17:07



    非常感谢,试用一下,应该能满足要求了,朋友dir 一条命令怎么分出文件和目录呢?以前我处理一些类似的会用DIR用参数区分文件和目录。

TOP

返回列表