数日間、次のコードで発生していたバグを手伝ってくれました。
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 に移動されます。
解凍されたファイルには、pdf と txt の 2 つの異なる拡張子が付いています。
月曜日から金曜日までの間、コードは毎日正常に動作し、txt ファイルの内容をデータベースに抽出します。
ただし、週末になると、txt ファイルが同じ名前であるため上書きされ、データが失われます。名前は常に一意であるため、pdf ファイルは上書きされません。
私がやりたいのは、拡張子が txt のファイルにのみ currentdate と time を追加することです。
私はそれを行うためのコードを持っていると思いますが、それを上に投稿したスクリプトに統合する方法がわかりません。
ここに私が統合したいビットがあります。
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 ファイルが上書きされないようにすることはできますか?
ご協力ありがとうございました。