[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. ::本批处理功能为将当前文件夹下所有以阿拉伯数字命名的文本文件“按序”排列
  4. ::注意事项:当前文件夹中的文本文件名必须为阿拉伯数字,数字之间不允许空格
  5. ::当然可以根据自己的需求继续完善
  6. set max=1
  7. for %%a in (*.txt) do (
  8. set %%~na=%%~na
  9. if !max! lss %%~na set max=%%~na
  10. set /a cnt+=1
  11. )
  12. for /l %%a in (1,1,%cnt%) do (
  13. if defined %%a (
  14. set %%a=
  15. ) else (
  16. set _tmp=%%a
  17. call :reName %%a
  18. )
  19. )
  20. echo done......
  21. pause>nul
  22. exit
  23. :reName
  24. for /l %%a in (1,1,%max%) do (
  25. set /a _tmp+=1
  26. if defined !_tmp! (
  27. echo ren !_tmp!.txt %1.txt
  28. set !_tmp!=
  29. pause>nul
  30. goto :eof
  31. )
  32. )
复制代码
1

评分人数

    • batman: 效率有问题PB + 2 技术 + 1

TOP

如下图所示,不知为何我测试时,程序最后把编号编到242了,而我的txt文本只有50个啊

TOP

是的。
对于楼主的实际应用,看来用dir/o-d的排序效果就达到要求了。
我用于测试所创建的文本文件创建时间几乎全都一样吧,对于实际情况没有什么意义了。
只是对于这种“特殊情况”不适用罢了

TOP

返回列表