我有以下代码(在网络空间中操纵一些有用灵魂的代码)。 它的目的是将所有.csv文件压缩到一个目录中,并使用当前时间戳命名该zip文件。
我的问题 - 我已经设置了一个计划任务,每天执行以下代码。如您所见,每次执行代码时我都会回去一天。意思是,今天用昨天的“日”压缩文件。当它在每个月的第一天运行时,我显然遇到了问题。它将抓住昨天(这很好)但是当月。如何操作代码以便检查昨天是否是该月的最后一天并为文件名设置正确的时间戳?
非常感谢任何帮助。
strFilepath = "c:\files"
strDestination = "c:\files\completed\" '"#
strExtension = "csv"
strYear = Year(Now)
strMonth = Right("0" & Month(Now), 2)
strDay = Right("0" & Day(Now -1), 2)
strHour = Right ("0" & Hour(Now), 2)
strMinute = Right ("0" & Minute (Now), 2)
strZip = strFilepath & "\" & strYear & strMonth & strDay & strHour & strMinute & ".zip" '"#
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strFilepath)
For Each objFile in objFolder.Files
strFileExt = objFSO.GetExtensionName(objFile.Path)
If LCase(strFileExt) = LCase(strExtension) Then
ZipFile objFile.Path, strZip
End If
Next
Sub ZipFile(strFileToZip, strArchive)
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FileExists(strArchive) Then
Set objTxt = objFSO.CreateTextFile(strArchive)
objTxt.Write "PK" & Chr(5) & Chr(6) & String(18, Chr(0))
objTxt.Close
End If
Set objApp = CreateObject( "Shell.Application" )
intCount = objApp.NameSpace(strArchive).Items.Count + 1
objApp.NameSpace(strArchive).CopyHere strFileToZip
Do
WScript.Sleep 200
set objNameSpace = objApp.NameSpace(strArchive)
If Not objNameSpace is nothing Then
If objNameSpace.Items.Count = intCount Then
Exit Do
End If
End If
Loop
End Sub
答案 0 :(得分:0)
只需查看日(现在)值。它= 1,然后月=月-1。