活了二十几年,从来没有人给过我一次意外感动或惊喜,也没有人在我生日的时候给过我特别的礼物,生病的时候得到的只是一些不在身边的语言安慰,也不见谁真正的照顾过自己,甚至有的时候自己蒙头睡一觉就好了,也有人喜欢过我,但是从没见谁坚持过。
公司有个需求,要删除多级目录下面的某个相同目录文件。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