[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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
复制代码

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

看来要添加个怎么使用搜索的帮助。

TOP

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

TOP

回复 3楼 的帖子

把@echo off删除,看看执行过程呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

TOP

这样的测试结果应该很明确了罢。

问题完全出自代码。
文件显示的顺序并不是你想像的那样,与你列出的完全不同,是这样:
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
请按任意键继续. . .

TOP

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

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

TOP

新手问问题

修改一下代码

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

TOP

返回列表