中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 00:38
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 该如何给这样的文件改名 查看 786 回复 4
楼 主 该如何给这样的文件改名 发表于 2009-06-10 02:10 ·  中国 山东 威海 联通
初级用户
积分 25
发帖 12
注册 2006-12-29 08:21
19年会员
UID 74912
性别 男
状态 离线
有这样的文件名:
ab00091_902111.bmp
xx00091_322322.xml
xss0092_dddddd.bmp
xxxxx92_fdddffff.xml
www93_dddssbf.bmp
sssfff93djjfffddd.xml

他们的共同点是 91,92,93

我想同时更改其名为
123a.bmp
123a.xml
123b.bmp
123b.xml
123c.bmp
123c.xml

请各位帮忙.
2 发表于 2009-06-10 03:03 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
一个取巧的方法。
@echo off
for /f "delims=" %%i in ('dir/b *.bmp *.xml^|sort /+8') do (for %%a in (a b c) do ren %%i 123%%a%%~xi)2>nul
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
Hanyeguxing +2 2009-06-10 03:04
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
3 发表于 2009-06-10 03:35 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线

@echo off
setlocal enabledelayedexpansion
set var=abc
for /f "delims=" %%i in ('dir /b *.bmp *.xml') do (
for /l %%a in (91,1,93) do (
set /a l=%%a-91
echo %%i|find "%%a">nul && call :label "%%i" %%a !l! %%~xi
)
)
pause
:label %1 %2 %3 %4
echo ren %1 "%2!var:~%3,1!%4"
goto :eof


方法太笨速度超慢~~
4 发表于 2009-06-10 04:11 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@echo off
for %%L in (91.a 92.b 93.c) do (
for %%F in (*%%~nL*.bmp *%%~nL*.xml) do (
set var=%%~xL
call ren "%%F" "123%%var:~1%%%%~xF"
)
)
5 发表于 2009-06-10 20:14 ·  中国 山东 威海 联通
初级用户
积分 25
发帖 12
注册 2006-12-29 08:21
19年会员
UID 74912
性别 男
状态 离线
谢谢各位!!!真没想到批处理竟然如此强大。
论坛跳转: