22,210
社区成员
发帖
与我相关
我的任务
分享
strDrive = left(WScript.Arguments(0), 2)
strPath = replace(right(WScript.Arguments(0), len(WScript.Arguments(0))-2),"\","\\") & "\\"
strExtension = WScript.Arguments(1)
intDays = WScript.Arguments(2)
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objConvertedDate = CreateObject("WbemScripting.SWbemDateTime")
Set colFiles = objWMIService.ExecQuery("select * from CIM_DataFile where drive='" &_
strDrive & "' and path='" & strPath & "'")
For Each objFile in colFiles
objConvertedDate.Value = objFile.CreationDate
dtCreationDate = objConvertedDate.GetVarDate(LOCAL_TIME)
If DateAdd("d", intDays, dtCreationDate) < Now and objFile.Extension = strExtension Then
' Wscript.Echo objFile.Name & ", " & DateDiff("d", dtCreationDate, Now)
objFile.delete()
End If
Next
DECLARE @filename NVARCHAR(100)
DECLARE @cmd NVARCHAR(100)
SET @filename = 'D:\BACKUP\cpmedical_all.bak_'
+ LTRIM(DATEPART(yy,GETDATE()))
+ LTRIM(DATEPART(mm,GETDATE()))
+ LTRIM(DATEPART(dd,GETDATE()-3))
+ '225.rar'
SET @cmd = 'del '+@filename
EXEC master..xp_cmdshell @cmd
GO
declare @data_3ago nvarchar(50)
declare @cmd varchar(50)
set @data_3ago ='D:\BACKUP\cpmedical_all.bak_'+convert(varchar(10),getdate()-3,112)+'225.rar'
set @cmd = 'del '+ @data_3ago
exec master..xp_cmdshell @cmd
go
--在d盘创建文件测试结果
/*
output
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NULL
(所影响的行数为 1 行)
*/
declare @data_3ago nvarchar(50)
declare @cmd varchar(50)
set @data_3ago ='D:\BACKUP\cpmedical_all.bak_'+convert(varchar(10),getdate()-3,112)+'.rar'
set @cmd = 'del '+ @data_3ago
exec master..xp_cmdshell @cmd
go
/*
output
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
找不到 D:\BACKUP\cpmedical_all.bak_20100614.rar
NULL
(所影响的行数为 2 行)
*/
EXEC master..xp_cmdshell N'del I:\文件名.rar',NO_OUTPUT
DECLARE @OLDDATE DATETIME
SELECT @OLDDATE=GETDATE()-3
EXECUTE master.dbo.xp_delete_file 0,N'I:\sql2005back\rar\cpmedical\all',N'rar',@olddate