![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 23:31 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]求大侠写一批量重命名代码 |
| 可打印版本 2,528 / 38 |
| 第16楼 hulongzhuo | 发表于 2008-03-28 14:50 |
| 中级用户 发帖 135 积分 294 | |
|
楼上的,提示命令语法不正确,这玩意还真难了~~
|
|
| 第17楼 hulongzhuo | 发表于 2008-03-28 15:01 |
| 中级用户 发帖 135 积分 294 | |
|
仍然是失败的,多谢大家的热情帮助了.......................
|
|
| 第18楼 huajinghua | 发表于 2008-03-28 15:13 |
| 初级用户 发帖 19 积分 54 | |
|
这么简单都不会
|
|
| 第19楼 hulongzhuo | 发表于 2008-03-28 15:17 |
| 中级用户 发帖 135 积分 294 | |
Originally posted by huajinghua at 2008-3-28 03:13 PM: 你编个试试看? |
|
| 第20楼 balinger | 发表于 2008-03-28 15:18 |
| 中级用户 发帖 115 积分 356 | |
|
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION for /f "tokens=1-5 delims=._" %%a in ('dir /b *.jpg') do ( set /a sd=1+%%d set /a se=1+%%e ren %%a_%%b_%%c_%%d_%%e.jpg %%a_%%b_%%c_!sd!_!se!.jpp) ren *.jpp *.jpg pause |
|
| 第21楼 abcd | 发表于 2008-03-28 15:22 |
| 银牌会员 发帖 739 积分 1,436 | |
|
13楼的绝对可以的
问题不在代码,应该是楼主自己的原因 |
|
| 第22楼 hulongzhuo | 发表于 2008-03-28 15:24 |
| 中级用户 发帖 135 积分 294 | |
|
运行楼上的提示:
无效数字。数字常数只能是十进制(17),十六位进制(0x11)或 八进制(021)。 |
|
| 第23楼 hulongzhuo | 发表于 2008-03-28 15:29 |
| 中级用户 发帖 135 积分 294 | |
Originally posted by abcd at 2008-3-28 03:22 PM: 不可以的,提示: 无效数字。数字常数只能是十进制(17),十六位进制(0x11)或 八进制(021)。 存在一个重名文件,或是找不到文件。 好像计算不正确.或是进制不对什么的.......... |
|
| 第24楼 abcd | 发表于 2008-03-28 15:36 |
| 银牌会员 发帖 739 积分 1,436 | |
|
如果楼主的图片中 如:0_6870-7912_071109_173933_2734.jpg
有类似0_6870-7912_071109_173933_00002734.jpg等的,就会出现楼主说的错误 |
|
| 第25楼 hulongzhuo | 发表于 2008-03-28 15:42 |
| 中级用户 发帖 135 积分 294 | |
Originally posted by abcd at 2008-3-28 03:36 PM: 不好意思,本人的确忽略了一个很重要的问题,忘了说明了,还存在有以0开头的那种, 比如: 0_6870-7912_071109_085109_0273.jpg 0_6870-7912_071109_085112_0274.jpg 0_6870-7912_071109_085115_0275.jpg 这样的情况,第3和第4列是以0开头的了,那么运行就会出错了,说进制不对,该怎么办呢? 并且要改名以后位数不能变动哦,比如最后是4位就得是4位!! [ Last edited by hulongzhuo on 2008-3-28 at 04:07 PM ] |
|
| 第26楼 balinger | 发表于 2008-03-28 15:43 |
| 中级用户 发帖 115 积分 356 | |
|
0开头代表八进制,而八进制数里不能有8、9。
|
|
| 第27楼 hulongzhuo | 发表于 2008-03-28 15:47 |
| 中级用户 发帖 135 积分 294 | |
|
我想必须先要取得第3列的文本,然后把文本转换成数值才可以相加,就不会出错,然后再把这数值转成文本,替换掉第三列,第4列亦同.
功底不行,所以只得求助于高人了~~~ |
|
| 第28楼 huajinghua | 发表于 2008-03-28 15:53 |
| 初级用户 发帖 19 积分 54 | |
|
绝对行,把他保存为BAT放在和图片同一目录下。呵呵 @echo off
echo made by 公孙轩辕 QQ:327828994. setlocal enabledelayedexpansion for /r %%i in (*.jpg) do ( set b=%%~ni for /f "delims=_ tokens=1,2,3,4,5" %%i in ("!b!") do ( set n3=%%l set n4=%%m set /a n3=!!n3!+1! set /a n4=!!n4!+1! set newname=%%i_%%j_%%k_!n3!_!n4! ) ren "!b!.jpg" "!newname!.bmp" ) ren *.bmp *.jpg pause echo 修改成功! ============= 上段代码的*.bmp可以任意换成其他的格式,我改名是怕他在修改后有其他文件重名,所以改掉了 也可以将代码改为: @echo off echo made by 公孙轩辕 QQ:327828994. setlocal enabledelayedexpansion for /r %%i in (*.jpg) do ( set b=%%~ni for /f "delims=_ tokens=1,2,3,4,5" %%i in ("!b!") do ( set n3=%%l set n4=%%m set /a n3=!!n3!+1! set /a n4=!!n4!+1! set newname=%%i_%%j_%%k_!n3!_!n4! ) ren "!b!.jpg" "!newname!.aaa" ) ren *.aaa *.jpg pause echo 修改成功! [ Last edited by huajinghua on 2008-3-27 at 07:58 PM ] |
|
| 第29楼 huajinghua | 发表于 2008-03-28 15:54 |
| 初级用户 发帖 19 积分 54 | |
|
说了很简单的嘛还不相信
|
|
| 第30楼 hulongzhuo | 发表于 2008-03-28 16:04 |
| 中级用户 发帖 135 积分 294 | |
|
不好意思,本人的确忽略了一个很重要的问题,忘了说明了,还存在有以0开头的那种,
比如: 0_6870-7912_071109_085109_0273.jpg 0_6870-7912_071109_085112_0274.jpg 0_6870-7912_071109_085115_0275.jpg 这样的情况,第3和第4列是以0开头的了,那么运行就会出错了,说进制不对,该怎么办呢? 并且要改名以后位数不能变动哦,比如最后是4位就得是4位!! |
|
| 上一页 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |