![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 12:05 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]如何批量修改文件名? |
| 可打印版本 2,900 / 9 |
| 第1楼 23112656 | 发表于 2008-07-28 02:26 |
| 中级用户 发帖 99 积分 220 | |
|
[已结]如何批量修改文件名? 我先说一下情况`我电脑里有N张JPG格式的图片,而图片的名字又乱七八糟,有没有办法把这些图片的名字从1开始,然后顺序的改名下去?比如:1.jpg 2.jpg 3.jpg
我试了很多办法还是不行啊.我想应该要用到FOR /L 命令吧?但改来改去只能在一个文件上改名`我郁闷啊```求各位高手支招``` 最后麻烦各位高手能把详细的代码说明一下`再次感谢``` [ Last edited by HAT on 2008-11-19 at 17:08 ] |
|
| 第2楼 pusofalse | 发表于 2008-07-28 05:20 |
| 银牌会员 发帖 646 积分 1,604 | |
|
这样的问题已经有很多了,同你的一模一样。
http://www.cn-dos.net/forum/viewthread.php?tid=37611&fpage=1&highlight=%E6%89%B9%E9%87%8F%E4%BF%AE%E6%94%B9%E6%96%87%E4%BB%B6%E5%90%8D for %%a in (*.jpg) do ( set/a n+=1 call ren "%%a" %%n%%.jpg ) |
|
| 第3楼 523066680 | 发表于 2008-07-28 08:49 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
短 超短……无语……无奈……羡慕……
楼上的代码已经简洁到没什么可以解释的了,有的话就是call部分……这是一个很好的 例子,楼主要掌握技巧哦!(郁闷……我不会这个……楼主真好运,刚来就有的学) 贴上我的一个,效率很低,我刚入门时写的:(不用set命令哦) ren *.jpg *. for /l %%a in (1,1,10000) do ( ren *. a-%%a.jpg 2>nul if not exist *. exit ) 解释:将所有的jpg文件改为 格式 然后 的for /l %%a 从1到10000 f1 --重命名*. 为 1.jpg 由于系统错误,所以只能重命名出一个1.jpg f2 --重命名*. 为 2.jpg 因为是ren *. 所以 之前的1.jpg不会被改成2.jpg 并且仍把剩下的提取一个2.jpg 达到了一个个重命名的效果。 f3 f4以此类推 此方法不支持大家用,纯粹是绕弯路……吃饱了撑着,明明精华贴里面有,却硬要 写个自己的。 [ Last edited by 523066680 on 2008-7-31 at 03:06 PM ] |
|
| 第4楼 23112656 | 发表于 2008-07-30 23:12 |
| 中级用户 发帖 99 积分 220 | |
|
呵呵```谢谢啊```其实我觉得绕弯路是成为高手的捷径啊`
|
|
| 第5楼 23112656 | 发表于 2008-07-30 23:31 |
| 中级用户 发帖 99 积分 220 | |
|
可是用了2楼的代码为什么数字并不是按照顺序来排列的呢?准确说数字是到100以后才开始正确排列的.100以前的数字都是跳着改名的
|
|
| 第6楼 pusofalse | 发表于 2008-07-31 07:51 |
| 银牌会员 发帖 646 积分 1,604 | |
|
不是跳着改名,而是排列顺序不同,你右键一下,名称排列。
在我电脑上运行正常。 |
|
| 第7楼 studythedos | 发表于 2008-07-31 08:45 |
| 初级用户 发帖 45 积分 91 | |
|
以前见个批量改的,是先删到回收站的,觉得挺麻烦的,原来这里还有这么简单的啊。。学了。。
|
|
| 第8楼 23112656 | 发表于 2008-08-01 04:33 |
| 中级用户 发帖 99 积分 220 | |
Originally posted by pusofalse at 2008-7-31 07:51 AM: 我排列过了还是我说的那样啊,所以我建了2个批,执行完一个后排列不正常,然后再执行第二个就好了,这之间的问题是什么呢?和延时有关系吗? |
|
| 第9楼 523066680 | 发表于 2008-08-01 10:40 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
可能……
试试把for %%a in (*.jpg) do ( 改成 for /f "tokens=*" %%a in ('dir *.jpg') do ( 我觉得有可能是,重命名后,已经被rename过的文件 仍被在for读取 导致重复重命名同一部分文件 但是 在我这里测试的时候 没有出问题 欢迎参考这个帖子:http://www.cn-dos.net/forum/viewthread.php?tid=41846&fpage=2 论坛批处理区置顶的地方 有批处理精华帖 支持楼主下载 好好看,收获很大的 [ Last edited by 523066680 on 2008-8-1 at 10:54 AM ] |
|
| 第10楼 gxfc | 发表于 2008-11-19 17:00 |
| 新手上路 发帖 11 积分 17 | |
|
看了2楼的很受教,老帖也顶
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |