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

[文件操作] 批量重命名某文件夹下文件遇到的怪问题!

文件夹下有1.jpg,2.jpg,a.jpg,3.jpg--12.jpg,我的目的是要把它重命名为1-12.jpg,但是a.jpg被命名为19.jpg,本人甚是不解,希望各位帮忙解释下,代码如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. color 3f
  3. title 顺序重命名文件
  4. mode con cols=50 lines=10
  5. echo.&echo.&echo.
  6. echo        请把要处理的文件夹拖入窗口按回车开始!
  7. set/p m=  
  8. cls&echo.&echo.&echo.
  9. echo                  正在重命名...
  10. for /r %m% %%i in (*.jpg) do (
  11. set/a n+=1
  12. if %%~ni geq !n! (
  13. ren "%%i" !n!.jpg 2>nul||call :cf "%%i"
  14. ) else (set/a n-=1
  15. ))
  16. start "" %m%&exit
  17. :cf
  18. set/a n+=1
  19. ren %1 !n!.jpg 2>nul||goto cf
  20. goto :eof
复制代码

回cute兄,论坛上面我已经搜索过了,也有个按顺序重命名,跳过已有的数字为文件名的文件。但是我这现象太奇怪了,我始终不知道n怎么会加到19去了。

TOP

删掉 echo off,加了pause,没看到累加到19,会不会19是字符串来着?实在分析不出为什么会这样。

TOP

谢谢cute兄了,原来是跳过的我也累加了n。非常感谢。現在我已經在樓上修改了。

[ 本帖最后由 zhouyongjun 于 2008-12-22 19:15 编辑 ]

TOP

返回列表