删除某个目录下预定义天数以前的文件的脚本

王朝other·作者佚名  2006-01-08
宽屏版  字体: |||超大  

<?xml version="1.0" encoding="gb2312" ?>

<?job error="true" debug="false"?>

<package id="RemoveFilesByDate">

<job id="Main">

<runtime>

<description>

FileName: RemoveFilesByDate.wsf

这个脚本删除预定义天数以前的文件.

Version: 1.0

Created: icuc88@hotmail.com

Last Modify: Feb 18th, 2004

All right reserved.

</description>

<named

name="Driver"

helpstring="文件所在逻辑驱动器盘符"

type="string"

required="true"

/>

<named

name="Path"

helpstring="文件所在路径"

type="string"

required="true"

/>

<named

name="OlderBy"

helpstring="删除多少天以前的文件,缺省为3天。"

type="string"

required="false"

/>

<example>

Example:

1. 删除3天以前的文件

RemoveFilesByDate.wsf /Driver:C: /Path:\\test 2. 删除5天以前的文件

RemoveFilesByDate.wsf /Driver:C: /Path:\\test\\ /OlderBy:5

</example>

</runtime>

<script language="VBScript">

<![CDATA[

Option Explicit

On Error Resume Next

If WScript.Arguments.Count < 2 Then

WScript.Arguments.ShowUsage

WScript.Quit

Else

' 从指定的磁盘目录上面查找符合条件的文件

Dim strComputer

Dim objWMIService

Dim colFiles

Dim objFSO

strComputer = "." '在本地计算机上执行脚本

Set objWMIService = GetObject("winmgmts:" _

& "{impersonationLevel=impersonate}!\\" _

& strComputer & "\root\cimv2")

Dim WMISql

WMISql = "Select * from CIM_DataFile where Path = '" _

& WScript.Arguments.Named.Item("Path") & "' AND Drive= '" _

& WScript.Arguments.Named.Item("Driver") & "'"

Set colFiles = objWMIService.ExecQuery(WMISql)

' 删除满足条件的文件

' 该脚本指搜索当前路径下面的文件,不搜索子目录

Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim strWMIDate

Dim ODate

Dim OlderBy

Dim objFile

For Each objFile in colFiles

strWMIDate = objFile.CreationDate

ODate = WMIDateStringToDate(strWMIDate)

If WScript.Arguments.Named.Item("OlderBy") <> "" Then

OlderBy = CInt(WScript.Arguments.Named.Item("OlderBy"))

Else

OlderBy = 3

End If

If (Date - OlderBy) >= ODate Then

objFSO.DeleteFile(objFile.Name)

End If

Next

End If

Function WMIDateStringToDate(dtmInstallDate) '转换WMI格式的日期类型到DateTime类型

WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _

Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _

& " " & Mid (dtmInstallDate, 9, 2) & ":" & _

Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _

13, 2))

End Function

]]>

</script>

</job>

</package>

把上面的文件粘贴复制到记事本,然后另存为RemoveFilesByDate.wsf

双击可以看见使用方法

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有