![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 23:33 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]请问如何批量删除文件中指定的文件? |
| 可打印版本 1,927 / 16 |
| 第1楼 heitianma | 发表于 2008-03-25 19:52 |
| 初级用户 发帖 9 积分 22 | |
|
[求助]请问如何批量删除文件中指定的文件? 通过一软件检查出文件中有些文件是坏的,然后生成一个检查报告:
D:\1\ 000010.pdg, 000087.pdg, 000092.pdg-000093.pdg, 000095.pdg-000097.pdg, 000102.pdg, 000105.pdg-000108.pdg, 000117.pdg 第一行是这些文件所放的路径 第二三行是坏的文件名,用逗号隔开,另外还有个特点就是有些文件连续是坏的,所以表示为000105.pdg-000114.pdg,即000105.pdg,000106.pdg,000107.pdg,000108.pdg都是坏的 现在我想把这个检查报告中所有列出的文件删掉,用批处理如何实现。谢谢! |
|
| 第2楼 huahua0919 | 发表于 2008-03-25 20:37 |
| 银牌会员 发帖 780 积分 1,608 | |
|
del d:\1\*.pdg /f /q
|
|
| 第3楼 heitianma | 发表于 2008-03-25 20:42 |
| 初级用户 发帖 9 积分 22 | |
|
不好意思,忘了说了,这个文件夹中还有别的pdg文件,如果用这个命令其它文件会被删掉,我只想把检查报告中显示的坏文件删掉。
|
|
| 第4楼 xysoft | 发表于 2008-03-25 21:05 |
| 新手上路 发帖 2 积分 4 | |
|
晕了,你这一共才几个文件啊,手动都能删没了
|
|
| 第5楼 heitianma | 发表于 2008-03-25 21:23 |
| 初级用户 发帖 9 积分 22 | |
Originally posted by xysoft at 2008-3-25 09:05 PM: 为了表明我想问的问题,没有全粘贴出来而已,另外,一次手动删除还可以接受,但如果再下载下来的再检查还得删,按报告中的文件名找到指定的文件然后再删掉,这样手动删几十个文件,很繁琐的。 |
|
| 第6楼 metoo | 发表于 2008-03-25 21:37 |
| 初级用户 发帖 93 积分 195 | |
|
看你检测软件输出文本的格式吧- - 不知道格式怎么搞?
|
|
| 第7楼 abcd | 发表于 2008-03-25 21:57 |
| 银牌会员 发帖 739 积分 1,436 | |
|
想不出什么好方法,效率偏低 |
|
| 第8楼 heitianma | 发表于 2008-03-25 23:32 |
| 初级用户 发帖 9 积分 22 | |
Originally posted by abcd at 2008-3-25 09:57 PM: |
|
| 第9楼 terse | 发表于 2008-03-25 23:51 |
| 银牌会员 发帖 946 积分 2,404 | |
|
这个怎么样
@echo off&setlocal enabledelayedexpansion for /f "delims=" %%a in (a.txt) do set ph=%%a&goto lop :lop for /f "skip=1 delims=" %%i in (a.txt) do ( set src=%%i set src=!src:,= ! for %%a in (!src!) do call :loop %%a ) pause goto :eof :loop for /f "tokens=1,2 delims=-" %%a in ("%1") do ( echo %ph%%%a if not "%%b"=="" call :loop1 %%a %%b ) goto :eof :loop1 if not defined x set x=%~x2 set var=1%~n1 set/a var+=1 echo %ph%%var:~1%%x% if not "%var:~1%"=="%~n2" call :loop1 !var:~1! %~n2 [ Last edited by terse on 2008-3-25 at 11:58 PM ] |
|
| 第10楼 heitianma | 发表于 2008-03-25 23:59 |
| 初级用户 发帖 9 积分 22 | |
Originally posted by terse at 2008-3-25 11:51 PM: 看样子挺复杂的,是不是将你这个复制下来,做成一个bat文件,然后把刚才的: D:\1\ 000010.pdg, 000087.pdg, 000092.pdg-000093.pdg, 000095.pdg-000097.pdg, 000102.pdg, 000105.pdg-000108.pdg, 000117.pdg 拷到a.txt。 然后将这个bat文件和a.txt文件一块复制到D:\1\中,运行bat文件就行了? 有点太复杂,看不太懂,请指点。 |
|
| 第11楼 terse | 发表于 2008-03-26 00:24 |
| 银牌会员 发帖 946 积分 2,404 | |
Originally posted by heitianma at 2008-3-25 23:59: 将a.txt换成检查报告名 另:刚才将a.txt写了cxc.txt名 都替换为你的检查报告名 [ Last edited by terse on 2008-3-26 at 12:26 AM ] |
|
| 第12楼 abcd | 发表于 2008-03-26 05:33 |
| 银牌会员 发帖 739 积分 1,436 | |
Originally posted by heitianma at 2008-3-25 11:32 PM: 没看是用echo的吗?没用del哦 |
|
| 第13楼 heitianma | 发表于 2008-03-26 10:11 |
| 初级用户 发帖 9 积分 22 | |
Originally posted by abcd at 2008-3-26 05:33 AM: 好像有点明白了,我说你们两位给的批处理好像把文件名显示一下,没有进行其它操作,是不是把echo换成del就行了? 经试用abcd的方法可用,呵呵,直接把echo换成del就行了。 而terse的方法把echo换成del后没有反映(换了两个echo),不知道什么原因,说是找不到路径。 [ Last edited by heitianma on 2008-3-26 at 10:24 AM ] |
|
| 第14楼 terse | 发表于 2008-03-26 11:14 |
| 银牌会员 发帖 946 积分 2,404 | |
Originally posted by heitianma at 2008-3-26 10:11: 你说生成的一个检查报告在那里?把BAT放进去 然后把BAT里的A.TXT改为你的检查报告名, 我这里用A.TXT测试没问题 |
|
| 第15楼 heitianma | 发表于 2008-03-26 12:10 |
| 初级用户 发帖 9 积分 22 | |
Originally posted by terse at 2008-3-26 11:14 AM: 首先说声非常感谢! 我的报告是txt文件,里面内容是: D:\1\ 000010.pdg, 000087.pdg, 000092.pdg-000093.pdg, 000095.pdg-000097.pdg, 000102.pdg, 000105.pdg-000108.pdg, 000117.pdg 我把这个txt文件命名为a.txt,然后把你所给的批处理中的后两个echo(一共是三个)换成del,另存为1.bat,然后把这两个文件放到D:\1\文件下,运行1.bat。 是不是这样操作? |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |