【发布时间】:2016-02-04 16:40:43
【问题描述】:
我有一个文件夹,其中包含每天创建的文件,该文件夹中几乎没有不同类型的文件(txt、msg 等),但我需要提供一个脚本来允许我复制特定的文件文件,假设是 2015-05-05 格式的 msg 文件。这些文件会在某些时间窗口出现,例如上午 10 点之后会有一个 txt 文件,但没有更清晰等等。
我的脚本要求用户输入一个日期,例如 2015-05-05,该文件应该被复制到哪个日期。脚本会在该日期上添加一个小时戳(晚上 10:00:00),因此“截止”日期将是:2015-05-05 10:00:00 PM。
然后我使用DateDiff,间隔为12,脚本跨越所有间隔,“截止日期”和txt文件的创建日期并将它们复制到另一个文件夹。
但是,它会复制所有满足该要求的 txt 文件,因此所有在上午 10 点到晚上 10 点之间创建的文件,无论日期、月份和年份如何。我只需要从那一天复制 txt 文件!
我该怎么做才能使该脚本检查时间窗口,例如 2015-05-05 10:00:00 PM ±12 小时?我需要一种方法来制作时间范围,该范围的中心将是用户将标记的一天的晚上 10 点,例如 2015-05-05,从那时起(2015-05-05 10:00:00 PM)我需要检查±12小时。
这是我的脚本,但它没有按我想要的方式工作:
Dim inputday
sourcepath = "C:\EveryDayFiles\"
NewFolder = "C:\Copy\EDF"
Do
inputday = InputBox ("Type in a date:", "Copy Date")
If inputday = "" Then
Msgbox "Wrong Date!"
End If
Loop Until inputday > ""
cutofdate = inputday & " 10:00:00 PM"
Set objfso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objfso.GetFolder(sourcepath)
For Each objFile In objFolder.Files
dFileCrDate = objfso.GetFile(objFile).DateCreated
If timediff = DateDiff("h", dFileCrDate, Datapodana) =< 12 Then
If objfso.GetExtensionName(objFile) = "txt" Then
objfso.GetFile(objFile).Copy NewFolder & "\", True
End If
End If
Next
【问题讨论】:
标签: file date vbscript copy datediff