标题: 求助:全盘搜索指定文件并删除(好久没有来DOS联盟了)
[打印本页]
作者: fengzi
时间: 2009-2-13 15:42
标题: 求助:全盘搜索指定文件并删除(好久没有来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 ]
作者: zhengqian529
时间: 2009-2-13 15:45
==,刚才看错了。 想想
[ Last edited by zhengqian529 on 2009-2-13 at 15:46 ]
作者: fengzi
时间: 2009-2-13 15:45
作者: yishanju
时间: 2009-2-13 15:48
作者: fengzi
时间: 2009-2-13 15:49
作者: fengzi
时间: 2009-2-13 15:57
作者: zhengqian529
时间: 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文件.
作者: terrytong
时间: 2009-2-13 16:05
for /r %%a in (name) do del %%~fa
作者: yishanju
时间: 2009-2-13 16:07
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的话
作者: fengzi
时间: 2009-2-13 16:30
作者: yishanju
时间: 2009-2-13 16:49
作者: jy02116916
时间: 2009-2-13 16:53
@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
作者: fengzi
时间: 2009-2-13 17:25
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 ...
代码测试无效啊``不过还是谢谢了``
作者: zhengqian529
时间: 2009-2-13 18:47
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
作者: netbenton
时间: 2009-2-13 20:03
cmd 下好简单
del /s 文件列表
就可以了。
pushd d:\
del /s 2 3 4
作者: fengzi
时间: 2009-2-13 21:51
楼上的没有理解到我的意思``
实际上我服务器上分区有10来个 `
然后每个分区有几十个不规则命名的文件``
我要删的文件就是在这些不规则的文件里
所以你上面那个简单的批处理实在很难完成这个工作```
作者: fengzi
时间: 2009-2-13 21:54
14楼的代码我还没有测试 `
但我现在所遇到的工作实际上起码有好几百个文件
这样一个一个的列出来还是稍有点烦琐``
作者: netbenton
时间: 2009-2-14 04:36
我不相信这样不能k掉所有盘的 2 3 4 这几个文件
@echo off
set dri=cdefghijklmnopqrstuvwxyz
:lp
set dr=%dri:~0,1%
set dris=%dri:~1%
cd /d %dr%:\
del /s 2 3 4
if defined dris goto :lp
作者: fengzi
时间: 2009-2-14 11:24
Originally posted by netbenton at 2009-2-14 04:36 AM:
我不相信这样不能k掉所有盘的 2 3 4 这几个文件
@echo off
set dri=cdefghijklmnopqrstuvwxyz
:lp
set dr=%dri:~0,1%
set dris=%dri:~1%
cd /d %dr%:\
del /s 2 3 4
if defined dris goto :lp
你这个代码确实很有创意
但我在XPSP2下测试失败````
作者: netbenton
时间: 2009-2-14 12:51
问题出在哪里呢?
你要删的到底是什么文件呀
有属性吗?
每个文件名各加上引号再试试
作者: fengzi
时间: 2009-2-14 17:11
代码一直停留在 cd c:\
一直在C分区寻找文件删除
而且只能删掉根目录下的文件``
作者: netbenton
时间: 2009-2-14 17:46
你的系统不支持:
cd /d 和 del /s
吗?
再试这样吧:
@echo off
set dri=cdefghijklmnopqrstuvwxyz
:lp
set dr=%dri:~0,1%
set dris=%dri:~1%
%dr%:
cd \
for /f "delims=" %%a in ('dir/a-d/s/b 2 3 4') do del "%%a"
if defined dris goto :lp
作者: pizigao
时间: 2010-3-19 14:04
作者: clamber
时间: 2010-3-22 14:58
作者: ZJHJ
时间: 2010-3-23 09:54
@echo 按清单查找程序或文件路径,请分行填入>t.txt
call t.txt
for %%f in (C D E F G H I J K) do (
for /f %%i in (t.txt) do (
dir /a /b /s %%f:\%%i
DEL %%i
)
)
作者: pojiedos
时间: 2010-6-26 12:08