中国DOS联盟论坛

中国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:
13楼的绝对可以的

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


不可以的,提示:
无效数字。数字常数只能是十进制(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_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楼 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