中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-19 18:26
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]求大侠写一批量重命名代码 查看 2,335 回复 38
31 发表于 2008-03-28 16:06 ·  中国 福建 福州 连江县 电信
中级用户
★★
积分 356
发帖 115
注册 2004-07-27 00:00
21年会员
UID 29114
性别 男
状态 离线
@echo off
for /f "tokens=1-5 delims=._" %%a in ('dir /b *.jpg') do (call :111 %%a %%b %%c %%d %%e)
ren *.jpp *.jpg
pause
exit
:111
set d=%4
set e=%5
:222
if %d:~0,1%==0 (set d=%d:~1% &goto 222)
set /a d+=1
set d=000000%d%
set d=%d:~-6%
:333
if %e:~0,1%==0 (set e=%e:~1% &goto 333)
set /a e+=1
set e=0000%e%
set e=%e:~-4%
ren %1_%2_%3_%4_%5.jpg %1_%2_%3_%d%_%e%.jpp
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
hulongzhuo +4 2008-03-28 16:46
32 发表于 2008-03-28 16:09 ·  中国 广东 东莞 电信
初级用户
积分 54
发帖 19
注册 2008-02-24 13:37
18年会员
UID 111315
性别 男
状态 离线
按照那种格式在我的电脑上试了一下可以的用我的代码
33 使用通配符: 发表于 2008-03-28 16:13 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
@echo off&&setlocal enabledelayedexpansion
for /f "delims=_. tokens=4,5" %%b in ('dir /b') do (
set x=%%b
set y=%%c
set /a x+=1
set /a y+=1
ren *%%b_%%c.jpg *!x!_!y!.jpg
)
批处理之家新域名:www.bathome.net
34 发表于 2008-03-28 16:15 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
严重感谢33楼 以及所有为此给予帮助,给予代码,给予提示的大侠们,再次谢谢你们了,问题解决了!!!

高兴中~~~~~~

不知什么时候我才能达到这种水准!! ~~~~
35 发表于 2008-03-28 16:49 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
abcd的代码我更是看不懂了,连路径放哪都不知道了,完全摸不着门了~~~
36 发表于 2008-03-28 17:13 ·  中国 江苏 常州 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
我看变更3楼的就可以解决0开头问题
@echo off
for /f "delims=" %%i in ('dir /b /a-d D:\A\*.jpg') do (
for /f "delims=_. tokens=1-5" %%a in ("%%i") do (
set x=%%d
set y=%%e
call set/a x=1%%x%%+1
call set/a y=1%%Y%%+1
call set x=%%x:~1%%
call set y=%%y:~1%%
call ren "%%i" "%%a_%%b_%%c_%%x%%_%%y%%.jpg"
)
)
pause

[ Last edited by terse on 2008-3-28 at 05:18 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
plp626 +4 2008-03-28 17:26
简单!简单!再简单!
37 发表于 2008-03-28 17:23 ·  中国 广东 东莞 电信
中级用户
★★
积分 294
发帖 135
注册 2007-03-09 14:47
19年会员
UID 81212
性别 男
状态 离线
Originally posted by terse at 2008-3-28 05:13 PM:
我看变更3楼的就可以解决0开头问题
@echo off
for /f "delims=" %%i in ('dir /b /a-d D:\A\*.jpg') do (
for /f "delims=_. tokens=1-5" %%a in ("%%i") d ...



的确是可行的.呵呵~~~
38 发表于 2008-03-28 18:17 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
哈,还有这么个插曲。

@echo off&&setlocal enabledelayedexpansion
:: 这里是路径。
set "lj=d:\a"
for /f "delims=" %%i in ('dir/b "%lj%\*.jpg"') do (
for /f "tokens=1-5 delims=_." %%a in ("%%i") do (
set /a x=1%%d+1,y=1%%e+1
ren "%lj%\%%~nxi" "%%a_%%b_%%c_!x:~1!_!y:~1!.jpg"
))
pause
致精致简!
39 发表于 2008-03-28 18:46 ·  中国 广东 广州 天河区 电信
中级用户
★★
积分 233
发帖 117
注册 2007-11-28 02:38
18年会员
UID 104005
性别 男
状态 离线
厉害呀。好多都看不懂,要努力学习。,
论坛跳转: