Board logo

标题: [文件操作] 批量重命名某文件夹下文件遇到的怪问题! [打印本页]

作者: zhouyongjun    时间: 2008-12-22 16:33     标题: 批量重命名某文件夹下文件遇到的怪问题!

文件夹下有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
复制代码

作者: wxcute    时间: 2008-12-22 17:14

你说的不是有 13 个文件吗?^_^
参考:http://bbs.bathome.net/viewthread.php?tid=1090

看来要添加个怎么使用搜索的帮助。
作者: zhouyongjun    时间: 2008-12-22 17:21

回cute兄,论坛上面我已经搜索过了,也有个按顺序重命名,跳过已有的数字为文件名的文件。但是我这现象太奇怪了,我始终不知道n怎么会加到19去了。
作者: Batcher    时间: 2008-12-22 17:22     标题: 回复 3楼 的帖子

把@echo off删除,看看执行过程呢?
作者: zhouyongjun    时间: 2008-12-22 17:33

删掉 echo off,加了pause,没看到累加到19,会不会19是字符串来着?实在分析不出为什么会这样。
作者: wxcute    时间: 2008-12-22 18:30     标题: 这样的测试结果应该很明确了罢。

问题完全出自代码。
文件显示的顺序并不是你想像的那样,与你列出的完全不同,是这样:
1.jpg
10.jpg
11.jpg
12.jpg
2.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
9.jpg
a.jpg
                 正在重命名...
ren "D:\My Documents\测试目录\0重命名测试\test\ab\1.jpg" 1.jpg
ren "D:\My Documents\测试目录\0重命名测试\test\ab\10.jpg" 2.jpg
存在一个重名文件,或是找不到文件。
ren "D:\My Documents\测试目录\0重命名测试\test\ab\10.jpg" 3.jpg
ren "D:\My Documents\测试目录\0重命名测试\test\ab\11.jpg" 4.jpg
存在一个重名文件,或是找不到文件。
ren "D:\My Documents\测试目录\0重命名测试\test\ab\11.jpg" 5.jpg
存在一个重名文件,或是找不到文件。
ren "D:\My Documents\测试目录\0重命名测试\test\ab\11.jpg" 6.jpg
存在一个重名文件,或是找不到文件。
ren "D:\My Documents\测试目录\0重命名测试\test\ab\11.jpg" 7.jpg
存在一个重名文件,或是找不到文件。
ren "D:\My Documents\测试目录\0重命名测试\test\ab\11.jpg" 8.jpg
存在一个重名文件,或是找不到文件。
ren "D:\My Documents\测试目录\0重命名测试\test\ab\11.jpg" 9.jpg
存在一个重名文件,或是找不到文件。
ren "D:\My Documents\测试目录\0重命名测试\test\ab\11.jpg" 10.jpg
ren "D:\My Documents\测试目录\0重命名测试\test\ab\12.jpg" 11.jpg
ren "D:\My Documents\测试目录\0重命名测试\test\ab\a.jpg" 19.jpg
请按任意键继续. . .

作者: zhouyongjun    时间: 2008-12-22 19:07

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

[ 本帖最后由 zhouyongjun 于 2008-12-22 19:15 编辑 ]
作者: xiong8707    时间: 2008-12-25 23:41     标题: 新手问问题

修改一下代码

例如 我更改 文件夹1 下面的 20个文件名 为 1~20
                        文件夹2 下面的 30个文件名为 21~50
只要不关闭这个批处理 就能一直递加下去,麻烦各位大侠写个代码上来
有解释最好哈~




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2