![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 21:31 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 重命名的问题 |
| 可打印版本 841 / 6 |
| 第1楼 caiye211221 | 发表于 2009-05-07 11:37 |
| 新手上路 发帖 18 积分 13 | |
|
重命名的问题 一
1把一目录下的电影文件写入到a.txt内。 2给电影改名 比如第一个叫寻秦记,寻秦记2,寻秦记3 这样就可以了 二 1读取a.txt的内容,并按a.txt的内容给寻秦记,寻秦记1,寻秦记2重命名。 说的好像有点不容易让人理解。 美女.rmvb = 寻秦记 猛男.avi = 寻秦记1 可以给它们改名,还可以改回来。 目地就不说了,谢谢高手呀。 顺便问下,DIR c:\*.*>a.txt 在cmd 下可以,在bat里就不行呢,是不是没写好,还是别的原因,就是一问题就找了两小时,晕呀,本人菜鸟。 |
|
| 第2楼 netbenton | 发表于 2009-05-07 12:51 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
运行一次改名,运行第二次还原。。。
|
|
| 第3楼 caiye211221 | 发表于 2009-05-08 08:59 |
| 新手上路 发帖 18 积分 13 | |
|
谢谢楼上的帮忙,但不好用。
存为BAT和电影放在一个文件夹,到是能生成A。TXT但不改名。不知道为什么。 能给我讲下吗。 if exist 寻秦记 goto :还原 如果名字是寻秦记,者GOTO还原 set n= (for /f "delims=" %%a in ('dir *.rmvb *.avi') do (echo %%a=寻秦记!n! ren "%%a" 寻秦记!n! set/a n+=1 ))>a.txt goto :eof 这句也就看懂'dir *.rmvb *.avi' 查找这两种格式的电影 太菜了,但不好用为什么呢。 |
|
| 第4楼 caiye211221 | 发表于 2009-05-08 09:01 |
| 新手上路 发帖 18 积分 13 | |
|
驱动器 E 中的卷是 新加卷=寻秦记
卷的序列号是 18DF-45B8=寻秦记1 E:\1\1 的目录=寻秦记2 E:\1\1 的目录=寻秦记3 09-04-28 20:55 529,488,956 十分爱.avi=寻秦记4 09-04-28 21:23 567,853,616 如果爱DVD.avi=寻秦记5 09-05-04 13:36 586,829,320 独自等待.avi=寻秦记6 3 个文件 1,684,171,892 字节=寻秦记7 0 个目录 18,916,614,144 可用字节=寻秦记8 这是运行后生成a.txt的内容。 |
|
| 第5楼 caiye211221 | 发表于 2009-05-08 09:35 |
| 新手上路 发帖 18 积分 13 | |
|
加个PAUSE,才看明白错误在哪。
系统找不到指定的文件。 文件名,目录名或卷标语法不正确 文件名,目录名或卷标语法不正确 系统找不到指定的文件。 系统找不到指定的文件。 系统找不到指定的文件。 系统找不到指定的文件。 系统找不到指定的文件。 系统找不到指定的文件。 |
|
| 第6楼 netbenton | 发表于 2009-05-08 14:37 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
不好意思,少了一个参数 /b
@echo off&setlocal enabledelayedexpansion if exist 寻秦记 goto :还原 rem 如果已经文件“寻秦记”存在则跳到“:还原” set n= rem 将dir 命令得到的目录列表作为文本串给for /f 处理 (for /f "delims=" %%a in ('dir /b *.rmvb *.avi') do (echo %%a=寻秦记!n! rem 显示对应关系,后面的!n!就是递增的序号,然后改名 ren "%%a" 寻秦记!n! set/a n+=1 rem 循环一次n加1 ))>a.txt rem for 外面多了一层括号,意思是里面的代码为一组,这一组里面的所有显示输出全部通过管道转向到文件a.txt goto :eof :还原 rem 读取上面保存的文件a.txt作为文本串给for /f处理, rem 将每个文本串以=号为分隔符分段,并赋值给%%a %%b rem 每行文本串会执行一次ren %%b "%%a" for /f "tokens=1,2 delims==" %%a in (a.txt) do (ren %%b "%%a") [ Last edited by netbenton on 2009-5-9 at 06:04 ] |
|
| 第7楼 caiye211221 | 发表于 2009-05-09 05:22 |
| 新手上路 发帖 18 积分 13 | |
|
太帅了,感谢。
能大概的讲下,让我明白下吗。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |