Sh4dow's Blog

活了二十几年,从来没有人给过我一次意外感动或惊喜,也没有人在我生日的时候给过我特别的礼物,生病的时候得到的只是一些不在身边的语言安慰,也不见谁真正的照顾过自己,甚至有的时候自己蒙头睡一觉就好了,也有人喜欢过我,但是从没见谁坚持过。

VBS、批处理BAT删除二级目录下指定目录名下面指定时间文件

公司有个需求,要删除多级目录下面的某个相同目录文件。VBS比批处理确实好很多。

 

VBS、批处理BAT删除二级目录下指定目录名下面指定时间文件

 

 

VBS:

-------------

set f=createobject("scripting.filesystemobject")
Sub clean(p)
        Set files=f.getfolder(p).Files
        if not (isempty(files) and isnull(files)) Then
                for each fi in files
                        If Not IsEmpty(fi) Then
                                If (Date()-fi.DateLastModified>7) Then
                                        fi.Delete
                                End if
                        End if
                next
        End if
End Sub

Sub s(p)
        set of=f.getfolder(p)
        set ofs=of.SubFolders
        for each osf in ofs
                If Not IsEmpty(osf) Then
                        If StrComp(osf.Name,"报告")=0 Then
                                clean(osf.Path)
                        Else
                                s(osf.Path)
                        End If
                End if
        next
End Sub

s("c:\users\test\desktop")

 

 

---------------------------

VBS 调用安全软件删除文件:

 

--------------------

----------------
set f=createobject("scripting.filesystemobject")
Set ws=CreateObject("wscript.shell")
Sub clean(p)
        Set files=f.getfolder(p).Files
        if not (isempty(files) and isnull(files)) Then
                for each fi in files
                        If Not IsEmpty(fi) Then
                                If (Date()-fi.DateLastModified>7) Then
                                        ws.Run "C:\Users\test\Desktop\sdelete.exe "+Chr(34)+fi.Path+chr(34)
                                End if
                        End if
                next
        End if
End Sub

Sub s(p)
        set of=f.getfolder(p)
        set ofs=of.SubFolders
        for each osf in ofs
                If Not IsEmpty(osf) Then
                        If StrComp(osf.Name,"报告")=0 Then
                                clean(osf.Path)
                        Else
                                s(osf.Path)
                        End If
                End if
        next
End Sub

s("c:\users\test\desktop")

----------------------------------

s为指定父目录

 

BAT批处理:(子目录下面不能有空格)

---------------------

 

 

@echo off
set p=E:\test\公司
set sdelete=E:\test\公司\sdelete.exe
for /f "delims=" %%a in ('dir %p% /A:D /b')  do forfiles /P %p%\%%a\报告 /D -7 /C "cmd /c %sdelete% @path"

-------------------------------------------------------------------


---------

forfiles /p E:\test\公司 /s /d -10  /c  "cmd /c echo @path"

 

 

 

评论

© Sh4dow's Blog | Powered by LOFTER