有几天,你们帮我解决了以下代码所带来的错误:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fldr = FSO.GetFolder("C:\Ebooks\DRY\")
curYr=Year(Now)
For Each fil In fldr.Files
If LCase( Right( fil.Name, 4 ) ) = ".zip" Then
zipFilePath = fil.Path
temp = file.Name
temp = Left( temp, LEN(temp) - 4 ) ' remove the .zip
temp = Split( temp, "_" ) ' split base name away from month-day-year
temp = (temp(ubound(temp))) ' get just month-day-year
temp = Split( temp, "-" ) ' get month day and year separately
mn = CINT(temp(0)) ' get the month number
dirName = MonthName(mn,True) & temp(2) ' True means get 3 letter abbrev for month
objZip.UnPack zipFilePath, "D:\ACS\Current\"
FSO.MoveFile zipFilePath, "D:\ACS\" & curYr & "\" & dirName & "\" & fil.Name
End If
Next
脚本运行正常。所有解压缩的文件都将移动到名为Current的文件夹中,原始zip文件将移动到文件夹ACSCurrentYear。
解压缩的文件有2个不同的扩展名,pdf和txt。
在星期一到星期五之间,代码在每天工作正常,我们将txt文件的内容提取到数据库中。
但是,在周末,由于txt文件具有相同的名称,它们会被覆盖,从而导致我们丢失数据。 pdf文件不会被覆盖,因为名称始终是唯一的。
我想要做的是将currentdate和time附加到只有扩展名为txt的文件。
我想我有代码可以做到,但不知道如何将它集成到我上面发布的脚本中。
以下是我要整合的内容。
strDay = Day(now)
strMonth = Month(now)
strYear = Year(now)
strHour = Hour(now)
strMinute = Minute(now)
strSecond = Second(now)
datFinal = strYear & "/" & strMonth & "/" & strDay & " " & strHour & ":" & strMinute & ":" & strSecond
'现在,将日期追加到任何扩展名为txt的文件。
if lcase(FSO.GetExtensionName(fil.Name)) = "txt" then
fil.Name = "datFinal.txt"
我该如何处理?
更好的是,我可以在我发布的代码中添加一行代码,不允许覆盖txt文件吗?
非常感谢您的协助。
答案 0 :(得分:0)
每天在“D:\ ACS \ Current \”下创建一个新的子文件夹并提取到该文件夹,如
date_folder = strYear & strMonth & strDay
FSO.CreateFolder ("D:\ACS\Current\" & date_folder)
objZip.UnPack zipFilePath, "D:\ACS\Current\" & date_folder
或
解压缩到临时文件夹并在应用逻辑时将文件移动到“D:\ ACS \ Current \”,这样它们就不会互相覆盖。