中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 13:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批量改名 查看 812 回复 9
楼 主 批量改名 发表于 2008-05-14 11:42 ·  中国 广东 深圳 南山区 电信
新手上路
积分 16
发帖 7
注册 2008-05-14 11:00
18年会员
UID 118637
性别 男
状态 离线


要将下面的文件名称
chat.php-&date=2008-04-07&page=0.htm 改成
chat.php-&date=2008-04-07&page=00.htm

chat.php-&date=2008-04-07&page=1.htm 改成
chat.php-&date=2008-04-07&page=01.htm

chat.php-&date=2008-04-07&page=2.htm 改成
chat.php-&date=2008-04-07&page=02.htm
.....

下面的文件名保持不变:
chat.php-&date=2008-04-07&page=10.htm
chat.php-&date=2008-04-07&page=11.htm
chat.php-&date=2008-04-07&page=12.htm
....

为了按顺序处理这些文件,本来用C++写了个改名程序并按名称排序,奈何rename(oldname,newname)总运行不成功,所以特求助论坛兄弟,本人对批处理脚本不甚了了,望赐教。

[ Last edited by neilyoung on 2008-5-14 at 11:44 AM ]
2 发表于 2008-05-14 11:48 ·  中国 上海 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线

for /l %i in (0,1,9) do @ren "chat.php-&date=2008-04-07&page=%i.htm" "chat.php-&date=2008-04-07&page=0%i.htm"


直接命令行
批处理里面把%i改成%%i
3 发表于 2008-05-14 11:50 ·  中国 广东 深圳 南山区 电信
新手上路
积分 16
发帖 7
注册 2008-05-14 11:00
18年会员
UID 118637
性别 男
状态 离线
Originally posted by pooronce at 2008-5-14 11:48 AM:

for /l %i in (0,1,9) do @ren "chat.php-&date=2008-04-07&page=%i.htm" "chat.php-&date=2008-04-07&page=0%i.htm"


直接命令行
批处理里面把%i改成%%i



谢谢,我会先试一下,有问题了再问你
4 发表于 2008-05-14 11:53 ·  中国 广东 深圳 南山区 电信
新手上路
积分 16
发帖 7
注册 2008-05-14 11:00
18年会员
UID 118637
性别 男
状态 离线
这只是一个日期下的多个文件分页
chat.php-&date=2008-04-07&page=%i.htm

日期部分也是变化的, 还需要在加个变量处理,怎么处理?
5 发表于 2008-05-14 11:57 ·  中国 广东 深圳 南山区 电信
新手上路
积分 16
发帖 7
注册 2008-05-14 11:00
18年会员
UID 118637
性别 男
状态 离线


[ Last edited by neilyoung on 2008-5-14 at 12:05 PM ]
6 发表于 2008-05-14 12:04 ·  中国 广东 深圳 南山区 电信
新手上路
积分 16
发帖 7
注册 2008-05-14 11:00
18年会员
UID 118637
性别 男
状态 离线
批处理: for /l %%i in (0,1,9) do @ren "chat.php-&date=2008-04-07&page=%%i.htm" "chat.php-&date=2008-04-07&page=0%%i.htm"


返回结果:
F:\work\test\aaa>
for /L %i in (0 1 9) do @ren "chat.php-&date=2008-04-07&page=%i
.htm" "chat.php-&date=2008-04-07&page=0%i.htm"
系统找不到指定的文件。
7 请测试后将echo ren 改为 ren 发表于 2008-05-14 12:07 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
请在所在文件夹运行:

@echo off
for /f "delims=.=" %%a in ('dir /s /b *.htm') do if %%d lss 10 echo ren %%a.%%b=%%c=%%d.htm %%a.%%b=%%c=0%%d.htm
echo 改名完成!
pause>nul
批处理之家新域名:www.bathome.net
8 发表于 2008-05-14 12:27 ·  中国 广东 深圳 南山区 电信
新手上路
积分 16
发帖 7
注册 2008-05-14 11:00
18年会员
UID 118637
性别 男
状态 离线
虽然提示“系统找不到指定文件”,但文件名都已经改了过来

谢谢pooronce
9 发表于 2008-05-14 12:34 ·  中国 广东 深圳 南山区 电信
新手上路
积分 16
发帖 7
注册 2008-05-14 11:00
18年会员
UID 118637
性别 男
状态 离线
Originally posted by zw19750516 at 2008-5-14 12:07 PM:
请在所在文件夹运行:

@echo off
for /f "delims=.=" %%a in ('dir /s /b *.htm') do if %%d lss 10 echo ren %%a.%%b=%%c=%%d.htm %%a.%%b=%%c=0%%d.htm
echo 改名完成!
pa ...



谢谢zw19750516,偶用土法子搞完了,看到得晚了。不过还是谢谢你
10 发表于 2008-05-14 12:46 ·  中国 上海 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
如果全部文件都在那个目录下,且日期长度固定的话,那么日期也就是2008-04-07的位置用??????????代替,后面也一样,这样就可以直接全部命名了
论坛跳转: