Board logo

标题: 全盘删除指定大小的文件(含隐藏文件)namejm版主请进 [打印本页]

作者: lyaa     时间: 2007-9-12 16:57    标题: 全盘删除指定大小的文件(含隐藏文件)namejm版主请进

下面的代码不能删除隐藏文件,怎么让它能删除隐藏文件
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 ]
作者: lyaa     时间: 2007-9-12 17:01
下面的代码可以删除隐藏的,但是不能进入子文件夹
for /f "delims=" %%a in ('dir /a ^| find "291,032"') do del /q /f /a %%a
怎样才能两全其美啊
作者: ThinKing     时间: 2007-9-12 17:18
dir /a/s/a-d *.bat *.exe
作者: lyaa     时间: 2007-9-12 18:29
没看懂,能写得完整点吗

[ Last edited by lyaa on 2007-9-12 at 09:35 PM ]
作者: ThinKing     时间: 2007-9-12 22:16

for /f "delims=" %%a in ('dir /a-d/b/s *.bat *.exe^| find "291,032"') do del /q /f /a %%a

作者: lyaa     时间: 2007-9-13 09:40
还是不行耶,没有任何效果了
作者: wudixin96     时间: 2007-9-13 10:06
删除隐藏属性文件,要先去除隐藏属性,再删除
作者: lyaa     时间: 2007-9-13 12:43
用超级笨的方法解决了,下面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 ]
作者: flamemperor     时间: 2007-9-13 15:19
C:\.\abc.exe就可以吧
C:\1.\exe也可以吧
作者: lyaa     时间: 2007-9-13 16:59


  Quote:
Originally posted by flamemperor at 2007-9-13 03:19 PM:
C:\.\abc.exe就可以吧
C:\1.\exe也可以吧

不明白你的意思,我的意思是namejm版主那个查找文件并获得文件完整路径的脚本有bug,就是说只能正确的获取子目录里面文件的完整路径,对任意盘的根目录下的文件得到的完整路径多了一个\
作者: flamemperor     时间: 2007-9-13 17:27
我是新手,可能说得不对,如果错了,请原谅阿

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

这样
C:\.\abc.exe就可以了
C:\1.\exe也可以吧
作者: lyaa     时间: 2007-9-14 09:33
谢谢楼上的,果然不错,这样可解决的
del /q /f /a "!route:~0,-3!.\%%l"就可以了
现在还有一个问题,就是文件夹如果带空格就无法删除,比如
del /q /f /a "c:\abc  def\qwe.exe"找不到路径
作者: flamemperor     时间: 2007-9-14 13:54
感觉你加了""应该就能找到阿。

是不是压根就没有那个文件?
作者: lyaa     时间: 2007-9-14 21:14
文件肯定存在的,你可以试试,看了论坛好多帖子还是没有解决:(
作者: my3439955     时间: 2007-9-15 00:43
中毒了吧?
作者: lyaa     时间: 2007-9-15 22:57
今天发现原来在获得文件完整路径的时候,文件中的空格已经被过滤掉了,不知道namejm版主看到没有,能改进一下吗???
作者: flamemperor     时间: 2007-9-17 08:59
呵呵,还是没有文件哦。

原来的代码指的是啥?