![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 15:28 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求一批量改文件名的脚本 |
| 可打印版本 1,460 / 11 |
| 第1楼 fjzzgxwb | 发表于 2006-12-01 09:12 |
| 新手上路 发帖 6 积分 13 | |
|
求一批量改文件名的脚本 谢谢,例如:(A是一个常量,B是变量)
A123.txt 改名之后--------> 123.txt A456.txt 改名之后---------> 456.txt A999.txt 改名之后---------> 999.txt ps: (说白了,也就是把A这个常量去掉,:) 还要做到可以扫整个盘。 谢谢了:P:P~~~ |
|
| 第2楼 namejm | 发表于 2006-12-01 09:27 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
A这个常量如果是固定长度的话,则可以考虑通过字符截取操作把A去掉;如果长度不固定的话,则用 set var=!str1:A=! 的格式勉强可行,前提是:在同一文件名中,A这个字符串不和其余部分有重合。
|
|
| 第3楼 fjzzgxwb | 发表于 2006-12-01 09:40 |
| 新手上路 发帖 6 积分 13 | |
|
嗯,版主好热心啊,谢谢。
这里的A,我要用到字符串的。。后面的就是例如 [www.163.com] 版主能否帮忙写下批脚本? |
|
| 第4楼 namejm | 发表于 2006-12-01 11:14 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
给你两段演示代码:
test.txt的内容为: |
|
| 第5楼 a9319751 | 发表于 2006-12-02 06:45 |
| 中级用户 发帖 170 积分 439 | |
|
电视剧改名,不是很完美
@echo off setlocal enabledelayedexpansion echo 默认修改后文件名为01.rm pause set newname=01.rm :set /p oldname=请输入旧的文件名: :set /p newname=请输入新的文件名: set /p num=请输入共几集: for /f "tokens=1,2 delims=." %%i in ("%newname%") do ( set newname1=%%i set newname2=%%j ) if "%newname1:~0,1%"=="0" set newname1=%newname1:~1% :loop for %%i in (*.*) do (echo %%i |find "0%newname1%" && move %%i 0%newname1%.%newname2%) if "%newname1%"=="%num%" goto :eof set /a newname1=%newname1%+1 goto loop |
|
| 第6楼 a9319751 | 发表于 2006-12-02 07:31 |
| 中级用户 发帖 170 积分 439 | |
|
test
[ Last edited by a9319751 on 2006-12-5 at 04:41 AM ] |
|
| 第7楼 fjzzgxwb | 发表于 2006-12-02 17:28 |
| 新手上路 发帖 6 积分 13 | |
|
谢谢版主及楼上这位朋友的热心帮助,谢谢大家的关注。
我呢,注册本论坛就马上发求助的贴,还真有点不好意思。其实我想要这个批处理确实是想改电影名称的。。。呵呵~~一个一个名字的改,工作量很大,本人批处理又不会。。无奈~ 我试下了,版主的批处理可以做到改名了,不过还要局限于我们列出的名字。。。 倘若我们事先不知道我们电脑里多少个这样带有固定符号[www.163.com]呢 这样就不方便了。 楼上这位朋友的批处理也还是不够。。 请会的朋友帮忙加以完善下,不甚感激。。。 |
|
| 第8楼 namejm | 发表于 2006-12-02 20:08 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
那就得把你的所有条件全部罗列出来,光说替换A常量,但是又不给出所有可能的情况的话,我只能给演示代码了。
|
|
| 第9楼 fjzzgxwb | 发表于 2006-12-02 23:12 |
| 新手上路 发帖 6 积分 13 | |
|
版主这么早就来了,呵呵。不好意思,怪我没把问题说清楚。
我想要的效果就是:运行批处理后,首先会让用户输入定义常量A[www.163.com], (因为有的电影不单是一个地址下的,所以会不一样),然后就是用批处理把带有 [www.163.com]的这个量去掉,而不能出现覆盖提示的现象(如能更明确地显示出这 次我们究竟改了多少个文件名,在C盘下生成个ren.txt,记录下,最佳),还要过滤我的 电脑里的所有文件,如 C,D,E,F盘。。。 情况就是这样子,再次感谢! |
|
| 第10楼 fjzzgxwb | 发表于 2006-12-04 01:33 |
| 新手上路 发帖 6 积分 13 | |
|
不好意思,急需这个批处理..请会的朋友帮下忙,谢谢
|
|
| 第11楼 a9319751 | 发表于 2006-12-04 07:55 |
| 中级用户 发帖 170 积分 439 | |
|
文件改名.bat
@echo off set /p oldname=请输入旧的文件名: set /p newname=请输入新的文件名: setlocal enabledelayedexpansion dir /b . >list.txt for /f "tokens=1 delims=1" %%i in ("%oldname%") do set name=%%i if "%name:~-1%"=="0" set name=%name:~0,-1% if "%name:~-1%"=="0" set name=%name:~0,-1% if "%name:~-1%"==" " set name=%name:~0,-1% if "%name:~-1%"==" " set name=%name:~0,-1% for /f "delims=" %%i in (list.txt) do ( set var=%%i set var=!var:%name%=! ren %%i !var! ) dir /b . >list.txt for /f "tokens=1,2 delims=1" %%i in ("%oldname%") do set name=%%j for /f "delims=" %%i in (list.txt) do ( set var=%%i set var=!var:%name%=! ren %%i !var! ) dir /b . >list.txt for /f "tokens=1,2 delims=." %%i in ("%newname%") do set name=%%j for /f "delims=" %%i in (list.txt) do echo %%i |find "." || ren %%i %%i.%name% del list.txt del %0 生成文件.bat for /f %%i in (listfile.txt) do copy listfile.txt %%i listfile.txt [YYSoR]那年夏天的台风01.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风02.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风03.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风04.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风05.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风06.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风07.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风08.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风09.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风10.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风11.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风12.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风13.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风14.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风15.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风16.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风17.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风18.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风19.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风20.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风21.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风22.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风23.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风24.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风25.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风26.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风27.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风28.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风29.国语中字.d-vb.rmvb [YYSoR]那年夏天的台风30.国语中字.d-vb.rmvb 使用时把“文件改名.bat”放在要改名的电影的文件夹运行即可,使用前请先备份自己的重要文件 |
|
| 第12楼 arjay | 发表于 2006-12-04 22:37 |
| 新手上路 发帖 5 积分 9 | |
|
太厉害了,谢谢之中。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |