中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 22:44
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]求大侠写一批量重命名代码 查看 2,526 回复 38
16 发表于 2008-03-28 14:50 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
楼上的,提示命令语法不正确,这玩意还真难了~~
17 发表于 2008-03-28 15:01 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
仍然是失败的,多谢大家的热情帮助了.......................
18 发表于 2008-03-28 15:13 ·  中国 广东 东莞 电信
初级用户
积分 54
发帖 19
注册 2008-02-24 13:37
18年会员
UID 111315
性别 男
状态 离线
这么简单都不会
19 发表于 2008-03-28 15:17 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
Originally posted by huajinghua at 2008-3-28 03:13 PM:
这么简单都不会


你编个试试看?
20 发表于 2008-03-28 15:18 ·  中国 福建 福州 连江县 电信
中级用户
★★
积分 356
发帖 115
注册 2004-07-27 00:00
22年会员
UID 29114
性别 男
状态 离线
@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 发表于 2008-03-28 15:22 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
13楼的绝对可以的

问题不在代码,应该是楼主自己的原因
22 发表于 2008-03-28 15:24 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
运行楼上的提示:

无效数字。数字常数只能是十进制(17),十六位进制(0x11)或
八进制(021)。
23 发表于 2008-03-28 15:29 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
Originally posted by abcd at 2008-3-28 03:22 PM:
13楼的绝对可以的

问题不在代码,应该是楼主自己的原因


不可以的,提示:
无效数字。数字常数只能是十进制(17),十六位进制(0x11)或
八进制(021)。
存在一个重名文件,或是找不到文件。

好像计算不正确.或是进制不对什么的..........
24 发表于 2008-03-28 15:36 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
如果楼主的图片中 如:0_6870-7912_071109_173933_2734.jpg

有类似0_6870-7912_071109_173933_00002734.jpg等的,就会出现楼主说的错误
25 发表于 2008-03-28 15:42 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
Originally posted by abcd at 2008-3-28 03:36 PM:
如果楼主的图片中 如:0_6870-7912_071109_173933_2734.jpg

有类似0_6870-7912_071109_173933_00002734.jpg等的,就会出现楼主说的错误


不好意思,本人的确忽略了一个很重要的问题,忘了说明了,还存在有以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 发表于 2008-03-28 15:43 ·  中国 福建 福州 连江县 电信
中级用户
★★
积分 356
发帖 115
注册 2004-07-27 00:00
22年会员
UID 29114
性别 男
状态 离线
0开头代表八进制,而八进制数里不能有8、9。
27 发表于 2008-03-28 15:47 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
我想必须先要取得第3列的文本,然后把文本转换成数值才可以相加,就不会出错,然后再把这数值转成文本,替换掉第三列,第4列亦同.
功底不行,所以只得求助于高人了~~~
28 绝对行,把他保存为BAT放在和图片同一目录下。呵呵 发表于 2008-03-28 15:53 ·  中国 广东 东莞 电信
初级用户
积分 54
发帖 19
注册 2008-02-24 13:37
18年会员
UID 111315
性别 男
状态 离线
@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 发表于 2008-03-28 15:54 ·  中国 广东 东莞 电信
初级用户
积分 54
发帖 19
注册 2008-02-24 13:37
18年会员
UID 111315
性别 男
状态 离线
说了很简单的嘛还不相信
30 发表于 2008-03-28 16:04 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
不好意思,本人的确忽略了一个很重要的问题,忘了说明了,还存在有以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位!!
论坛跳转: