标题: [文件操作] 批量重命名某文件夹下文件遇到的怪问题! [打印本页]
作者: zhouyongjun 时间: 2008-12-22 16:33 标题: 批量重命名某文件夹下文件遇到的怪问题!
文件夹下有1.jpg,2.jpg,a.jpg,3.jpg--12.jpg,我的目的是要把它重命名为1-12.jpg,但是a.jpg被命名为19.jpg,本人甚是不解,希望各位帮忙解释下,代码如下:- @echo off&setlocal enabledelayedexpansion
- color 3f
- title 顺序重命名文件
- mode con cols=50 lines=10
- echo.&echo.&echo.
- echo 请把要处理的文件夹拖入窗口按回车开始!
- set/p m=
- cls&echo.&echo.&echo.
- echo 正在重命名...
- for /r %m% %%i in (*.jpg) do (
- set/a n+=1
- if %%~ni geq !n! (
- ren "%%i" !n!.jpg 2>nul||call :cf "%%i"
- ) else (set/a n-=1
- ))
- start "" %m%&exit
- :cf
- set/a n+=1
- ren %1 !n!.jpg 2>nul||goto cf
- 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://www.bathome.net/) |
Powered by Discuz! 7.2 |