中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:全盘搜索指定文件并删除(好久没有来DOS联盟了)
« [1] [2] »
作者:
标题: 求助:全盘搜索指定文件并删除(好久没有来DOS联盟了) 上一主题 | 下一主题
fengzi
中级用户

金牌会员


积分 315
发帖 152
注册 2007-1-25
状态 离线
『楼 主』:  求助:全盘搜索指定文件并删除(好久没有来DOS联盟了)

情况是这样子的`
我服务器上有一系列文件
d:\a\1
d:\a\2
d:\a\3
d:\a\4
d:\a\5
d:\b\1
d:\b\2
d:\b\3
d:\b\4
d:\b\5
e:\a\1
e:\a\2
e:\a\3
e:\a\4
e:\a\5
e:\b\1
e:\b\2
e:\b\3
e:\b\4
e:\b\5


我想全盘查找 3 4 5
这几个文件并删除


好久没有写过批处理``以前学的都丢了 `
呵呵``希望过路的大虾出手援助一下``

───────────────── 版务记录 ─────────────────
执行:HAT
操作:[2009-02-13]在帖子标题中增加搜索关键字
说明:原标题"好久没有来DOS联盟了 `有个批处理需要大家帮我写下`"不利于论坛搜索
处罚:扣除2点积分
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{27314}反面教材:本论坛“精彩”标题小集
{32667}愤怒:那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2009-2-13 at 22:48 ]

   此帖被 -2 点积分    点击查看详情   
评分人:【 HAT 分数: -2  时间:2009-2-13 22:48


2009-2-13 15:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhengqian529
初级用户





积分 100
发帖 93
注册 2009-1-14
来自 湖南
状态 离线
『第 2 楼』:  

==,刚才看错了。 想想

[ Last edited by zhengqian529 on 2009-2-13 at 15:46 ]

2009-2-13 15:45
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (250988158)  编辑帖子  回复  引用回复
fengzi
中级用户

金牌会员


积分 315
发帖 152
注册 2007-1-25
状态 离线
『第 3 楼』:  

刚才正在编辑``

2009-2-13 15:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 4 楼』:  

...

列举一下要删除什么文件




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-13 15:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fengzi
中级用户

金牌会员


积分 315
发帖 152
注册 2007-1-25
状态 离线
『第 5 楼』:  

比如每个盘的 3 4 5这几个文件``

2009-2-13 15:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fengzi
中级用户

金牌会员


积分 315
发帖 152
注册 2007-1-25
状态 离线
『第 6 楼』:  



2009-2-13 15:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhengqian529
初级用户





积分 100
发帖 93
注册 2009-1-14
来自 湖南
状态 离线
『第 7 楼』:  

1. dir /a-d /s /b "盘符" >>a.txt ::将所有的文件存放到a.txt文件中
2. for /f "delims=" %%i in ('findstr "3 4 5" a.txt') do del %%i ::删除你想删除的3,4,5文件.

2009-2-13 16:01
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (250988158)  编辑帖子  回复  引用回复
terrytong
中级用户





积分 240
发帖 115
注册 2008-3-10
状态 离线
『第 8 楼』:  

for /r %%a in (name) do del %%~fa

2009-2-13 16:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by zhengqian529 at 2009-2-13 16:01:
1. dir /a-d /s /b "盘符" >>a.txt ::将所有的文件存放到a.txt文件中
2. for /f "delims=" %%i in ('findstr "3 4 5" a.txt') do del %%i ::删除你想删除的3,4,5文件.

会误删文件的
比如有一个目录名包含4的话




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-13 16:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fengzi
中级用户

金牌会员


积分 315
发帖 152
注册 2007-1-25
状态 离线
『第 10 楼』:  

这样会连软件名包括那几个字的都给删掉的``

2009-2-13 16:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 11 楼』:  

需要用findstr 正则匹配。




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-13 16:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jy02116916
初级用户





积分 68
发帖 37
注册 2008-8-15
状态 离线
『第 12 楼』:  


@echo off
for /f "skip=1" %%a in ('wmic logicaldisk where "drivetype=3" get caption') do dir /a-d/s/b %%a\3 >>%temp%\dir.txt 2>nul
for /f "skip=1" %%a in ('wmic logicaldisk where "drivetype=3" get caption') do dir /a-d/s/b %%a\4 >>%temp%\dir.txt 2>nul
for /f "skip=1" %%a in ('wmic logicaldisk where "drivetype=3" get caption') do dir /a-d/s/b %%a\5 >>%temp%\dir.txt 2>nul
for /f "delims=" %%i in (%temp%\dir.txt) do del "%%~fi" 2>nul
del %temp%\dir.txt >nul


2009-2-13 16:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fengzi
中级用户

金牌会员


积分 315
发帖 152
注册 2007-1-25
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by jy02116916 at 2009-2-13 04:53 PM:
[code]@echo off
for /f "skip=1" %%a in ('wmic logicaldisk where "drivetype=3" get caption') do dir /a-d/s/b %%a\3 >>%temp%\dir.txt 2>nul
for /f "skip=1" %%a ...

代码测试无效啊``不过还是谢谢了``

2009-2-13 17:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhengqian529
初级用户





积分 100
发帖 93
注册 2009-1-14
来自 湖南
状态 离线
『第 14 楼』:  



  Quote:
Originally posted by yishanju at 2009-2-13 16:07:


会误删文件的
比如有一个目录名包含4的话

恩,刚才开会去了,我也想到了这个问题,那可以这样:
%~nI% 取a.txt文件里面的文件名
@echo off&setlocal EnableDelayedExpansion

for %%i in (e) do (
    dir /a-d /s /b %%i:\>>a.txt)

for /f "delims=" %%i in (a.txt) do (
    set var=%%~ni
    if "!var!"=="3" del %%i
    if "!var!"=="4" del %%i
    if "!var!"=="5" del %%i
    )

Endlocal


2009-2-13 18:47
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (250988158)  编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 15 楼』:  

cmd 下好简单
del /s 文件列表
就可以了。

pushd d:\
del /s 2 3 4



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-2-13 20:03
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: