[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
也发一个
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b/s/a-d c:\rm\*.rm') do (
  3.        set str=%%~nxi
  4.        call :lp "%%~ni"
  5.        if not exist "%%~dpi!str!" ren "%%i" "!str!"
  6.        )
  7. pause&exit
  8. :lp
  9. for /f "tokens=1* delims=0123456789" %%i in (%1) do (
  10.     if "%%i"=="" goto :eof
  11.     set str=!str:%%i=!
  12.     call:lp "%%j"
  13. )
复制代码

TOP

我也来一个
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d/s/b *.rm^|findstr /ie "\.rm"') do (
  3.     set str=%%a
  4.     setlocal EnableDelayedExpansion
  5.     call :check
  6.     for %%i in (!NaN!) do echo ren "!str!" "!str:~-%%i!"
  7.     endlocal
  8. )
  9. pause&exit/b
  10. :check
  11. for /l %%i in (4 1 260) do (
  12.     if "!str:~-%%i,1!" lss "0" (goto :eof) else if "!str:~-%%i,1!" gtr "9" goto :eof
  13.     set NaN=%%i
  14. )
复制代码
上面为什么到260,是因为UNC通用命名规则规定:路径(文件的完整路径)的最大长度为260个字符。(显然文件名无法件取到260个字符,但上面的代码写260也不会影响效率)

[ 本帖最后由 zqz0012005 于 2009-3-21 00:27 编辑 ]
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

将你们的改进一下:
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d/s/b *.rm^|findstr /ie "[0-9]\.rm"') do (
  3.     set strFullName=%%a&set strName=%%~nxa
  4.     setlocal enabledelayedexpansion
  5.     call :lp
  6.     echo ren "!strFullName!" "!strName!"
  7.     endlocal
  8. )
  9. pause&exit/b
  10. :lp
  11. for /f "tokens=1* delims=0123456789" %%a in ("!strName!") do (
  12.     if not "%%b"=="" set strName=!strName:*%%a=!&goto lp
  13. )
复制代码
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

哈哈!!!!!!!!!!!!!!!!!!!!!!!!!多谢.....我写了个小程序解决了...

TOP

返回列表