中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 04:29
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:全盘搜索指定文件并删除(好久没有来DOS联盟了) 查看 3,267 回复 25
楼 主 求助:全盘搜索指定文件并删除(好久没有来DOS联盟了) 发表于 2009-02-13 15:42 ·  中国 重庆 沙坪坝区 电信
中级用户
★★
金牌会员
积分 315
发帖 152
注册 2007-01-25 23:55
19年会员
UID 77669
性别 男
状态 离线
情况是这样子的`
我服务器上有一系列文件
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
操作:在帖子标题中增加搜索关键字
说明:原标题"好久没有来DOS联盟了 `有个批处理需要大家帮我写下`"不利于论坛搜索
处罚:扣除2点积分
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{27314}反面教材:本论坛“精彩”标题小集
{32667}愤怒:那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2009-2-13 at 22:48 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT -2 2009-02-13 22:48
2 发表于 2009-02-13 15:45 ·  美国 华盛顿州 金 雷德蒙德 Microsoft
初级用户
★★
积分 100
发帖 93
注册 2009-01-14 15:04
17年会员
UID 136661
性别 男
来自 湖南
状态 离线
==,刚才看错了。 想想

[ Last edited by zhengqian529 on 2009-2-13 at 15:46 ]
3 发表于 2009-02-13 15:45 ·  中国 重庆 沙坪坝区 电信
中级用户
★★
金牌会员
积分 315
发帖 152
注册 2007-01-25 23:55
19年会员
UID 77669
性别 男
状态 离线
刚才正在编辑``
4 发表于 2009-02-13 15:48 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
...

列举一下要删除什么文件

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
5 发表于 2009-02-13 15:49 ·  中国 重庆 沙坪坝区 电信
中级用户
★★
金牌会员
积分 315
发帖 152
注册 2007-01-25 23:55
19年会员
UID 77669
性别 男
状态 离线
比如每个盘的 3 4 5这几个文件``
6 发表于 2009-02-13 15:57 ·  中国 重庆 沙坪坝区 电信
中级用户
★★
金牌会员
积分 315
发帖 152
注册 2007-01-25 23:55
19年会员
UID 77669
性别 男
状态 离线
7 发表于 2009-02-13 16:01 ·  美国 华盛顿州 金 雷德蒙德 Microsoft
初级用户
★★
积分 100
发帖 93
注册 2009-01-14 15:04
17年会员
UID 136661
性别 男
来自 湖南
状态 离线
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文件.
8 发表于 2009-02-13 16:05 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 240
发帖 115
注册 2008-03-10 19:31
18年会员
UID 112561
性别 男
状态 离线
for /r %%a in (name) do del %%~fa
9 发表于 2009-02-13 16:07 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
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
10 发表于 2009-02-13 16:30 ·  中国 重庆 沙坪坝区 电信
中级用户
★★
金牌会员
积分 315
发帖 152
注册 2007-01-25 23:55
19年会员
UID 77669
性别 男
状态 离线
这样会连软件名包括那几个字的都给删掉的``
11 发表于 2009-02-13 16:49 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
需要用findstr 正则匹配。

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
12 发表于 2009-02-13 16:53 ·  中国 北京 鹏博士BGP
初级用户
积分 68
发帖 37
注册 2008-08-15 11:07
17年会员
UID 123237
性别 男
状态 离线
@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
13 发表于 2009-02-13 17:25 ·  中国 重庆 沙坪坝区 电信
中级用户
★★
金牌会员
积分 315
发帖 152
注册 2007-01-25 23:55
19年会员
UID 77669
性别 男
状态 离线
Originally posted by jy02116916 at 2009-2-13 04:53 PM:
@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 ...


代码测试无效啊``不过还是谢谢了``
14 发表于 2009-02-13 18:47 ·  美国 华盛顿州 金 雷德蒙德 Microsoft
初级用户
★★
积分 100
发帖 93
注册 2009-01-14 15:04
17年会员
UID 136661
性别 男
来自 湖南
状态 离线
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
15 发表于 2009-02-13 20:03 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
cmd 下好简单
del /s 文件列表
就可以了。

pushd d:\
del /s 2 3 4
精简
=> 个人网志
论坛跳转: