中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 21:23
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 全盘删除指定大小的文件(含隐藏文件)namejm版主请进 查看 2,438 回复 16
楼 主 全盘删除指定大小的文件(含隐藏文件)namejm版主请进 发表于 2007-09-12 16:57 ·  中国 上海 电信
初级用户
积分 40
发帖 17
注册 2007-08-10 14:49
18年会员
UID 94928
性别 男
状态 离线
下面的代码不能删除隐藏文件,怎么让它能删除隐藏文件
for /r %%a in (*.bat,*.exe) do if %%~za EQU 291032 del /q /f /a "%%a"

[ Last edited by lyaa on 2007-9-13 at 12:45 PM ]
2 发表于 2007-09-12 17:01 ·  中国 上海 电信
初级用户
积分 40
发帖 17
注册 2007-08-10 14:49
18年会员
UID 94928
性别 男
状态 离线
下面的代码可以删除隐藏的,但是不能进入子文件夹
for /f "delims=" %%a in ('dir /a ^| find "291,032"') do del /q /f /a %%a
怎样才能两全其美啊
3 发表于 2007-09-12 17:18 ·  中国 湖北 武汉 电信
中级用户
★★
积分 471
发帖 207
注册 2007-05-03 14:53
19年会员
UID 87369
性别 男
状态 离线
dir /a/s/a-d *.bat *.exe
4 发表于 2007-09-12 18:29 ·  中国 上海 电信
初级用户
积分 40
发帖 17
注册 2007-08-10 14:49
18年会员
UID 94928
性别 男
状态 离线
没看懂,能写得完整点吗

[ Last edited by lyaa on 2007-9-12 at 09:35 PM ]
5 发表于 2007-09-12 22:16 ·  中国 湖北 武汉 电信
中级用户
★★
积分 471
发帖 207
注册 2007-05-03 14:53
19年会员
UID 87369
性别 男
状态 离线
for /f "delims=" %%a in ('dir /a-d/b/s *.bat *.exe^| find "291,032"') do del /q /f /a %%a
6 发表于 2007-09-13 09:40 ·  中国 上海 电信
初级用户
积分 40
发帖 17
注册 2007-08-10 14:49
18年会员
UID 94928
性别 男
状态 离线
还是不行耶,没有任何效果了
7 发表于 2007-09-13 10:06 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
删除隐藏属性文件,要先去除隐藏属性,再删除
8 发表于 2007-09-13 12:43 ·  中国 上海 电信
初级用户
积分 40
发帖 17
注册 2007-08-10 14:49
18年会员
UID 94928
性别 男
状态 离线
用超级笨的方法解决了,下面for的主代码是namejm版主以前写的,有个问题就是列出完整文件路径的时候根目录会出现问题
比如:c:\1\1\1.exe正确
c:\\abc.exe(根目录出现问题,多了一个\)
如果namejm版主版主能看见希望能帮我看看,我解决不了,所以一个一个的写了,如果是不一样的文件名称我这样就行不通了
还有就是怎样进行全盘搜索,现在只对盘有效
论坛有个代码:
http://www.cn-dos.net/forum/viewthread.php?tid=31213
for %%i in (C D E F G H) do (
for %%a in (A1 D1 T2 Y1) do (
dir /s/ad %%i:\%%a && (net share htysm_!num!=%%i:\%%a && set /a num+=1)
)
)
我开始改了一下好像也不太好用,不知道为什么
下面是代码,见笑了,写出来是希望大家能有更好的解决方案:
@echo off
echo.&echo 正在清理病毒…………

cd\
if exist windows.exe del /q /f /a c:\windows.exe
call :kill
D:
if exist windows.exe del /q /f /a c:\windows.exe
call :kill

:kill
setlocal enabledelayedexpansion
for /f "tokens=1-3*" %%i in ('dir /a-d /tc /s^|findstr ":"') do (
set var=%%i%%j%%k%%l
if "!var:~1,1!"==":" set route=!var!
if not "!route!"=="!var!" if not "%%j"=="" if "%%k" == "291,032" del /q /f /a "!route:~0,-3!\%%l" && echo "!route:~0,-3!\%%l"
)
goto:eof

[ Last edited by lyaa on 2007-9-14 at 09:31 AM ]
9 发表于 2007-09-13 15:19 ·  中国 北京 鹏博士BGP
初级用户
积分 66
发帖 29
注册 2007-09-06 15:09
18年会员
UID 96715
性别 男
状态 离线
C:\.\abc.exe就可以吧
C:\1.\exe也可以吧
10 发表于 2007-09-13 16:59 ·  中国 上海 电信
初级用户
积分 40
发帖 17
注册 2007-08-10 14:49
18年会员
UID 94928
性别 男
状态 离线
Originally posted by flamemperor at 2007-9-13 03:19 PM:
C:\.\abc.exe就可以吧
C:\1.\exe也可以吧

不明白你的意思,我的意思是namejm版主那个查找文件并获得文件完整路径的脚本有bug,就是说只能正确的获取子目录里面文件的完整路径,对任意盘的根目录下的文件得到的完整路径多了一个\
11 发表于 2007-09-13 17:27 ·  中国 北京 鹏博士BGP
初级用户
积分 66
发帖 29
注册 2007-09-06 15:09
18年会员
UID 96715
性别 男
状态 离线
我是新手,可能说得不对,如果错了,请原谅阿

在拼接路径的时候是不是可以加一个.

这样
C:\.\abc.exe就可以了
C:\1.\exe也可以吧
12 发表于 2007-09-14 09:33 ·  中国 上海 电信
初级用户
积分 40
发帖 17
注册 2007-08-10 14:49
18年会员
UID 94928
性别 男
状态 离线
谢谢楼上的,果然不错,这样可解决的
del /q /f /a "!route:~0,-3!.\%%l"就可以了
现在还有一个问题,就是文件夹如果带空格就无法删除,比如
del /q /f /a "c:\abc def\qwe.exe"找不到路径
13 发表于 2007-09-14 13:54 ·  中国 北京 联通
初级用户
积分 66
发帖 29
注册 2007-09-06 15:09
18年会员
UID 96715
性别 男
状态 离线
感觉你加了""应该就能找到阿。

是不是压根就没有那个文件?
14 发表于 2007-09-14 21:14 ·  中国 上海 东方有线
初级用户
积分 40
发帖 17
注册 2007-08-10 14:49
18年会员
UID 94928
性别 男
状态 离线
文件肯定存在的,你可以试试,看了论坛好多帖子还是没有解决:(
15 发表于 2007-09-15 00:43 ·  中国 山东 淄博 联通
中级用户
★★
积分 272
发帖 99
注册 2006-06-02 09:12
20年会员
UID 56414
状态 离线
中毒了吧?
论坛跳转: