[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 yhcfsr 于 2018-4-16 18:26 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d/s/b^|findstr "[0-9]"') do (
  3. call :get_num "%%~na" name
  4. setlocal enabledelayedexpansion
  5. ren "%%a" "!name!%%~xa"
  6. endlocal
  7. )
  8. pause&exit
  9. :get_num
  10. setlocal&set "name=%~1"
  11. :lp
  12. set "ch=%name:~,1%"
  13. rem 取一字,如果是数字,截8字:如果全数字就输出,否则继续逐字扫描
  14. echo;"%ch%"|findstr "[0-9]">nul&&(
  15. echo;%name:~,8%|findstr "^[0-9]*$">nul&&(endlocal&set "%2=%name:~,8%"&goto :eof)
  16. )
  17. set "name=%name:~1%"
  18. if "%name%"=="" endlocal&goto :eof
  19. goto :lp
复制代码
效率是没有的,同名判别是没做的(太简单懒得写)。所以祈祷你的8位数没有重复吧。

TOP

本帖最后由 yhcfsr 于 2018-4-16 18:46 编辑

回复 3# 我是一只小小鸟
这个只是注释,没有任何作用,BAT不会执行。要不是好看,你删除就行。

TOP

回复 6# 我是一只小小鸟


    加我QQ 33892006

TOP

返回列表