由于我自动命名约定,文件以两种方式之一保存在特定存档中。它们与数据库中的记录具有13位匹配,或者它们具有10位数匹配。具有13位也的那些具有十位匹配,并且应该优先处理。我现在有两个脚本可以正常工作:一个只查找13位数匹配并将它们移动到另一个文件夹。其他通过datemodified移动,这不是一个非常稳定的变量。
我尝试组合看起来像这样:
'dimming of obj, folder paths, sql db info and connection open above
SQL = "SELECT ticket FROM orders WHERE dateinvoice>'6/1/16"
Recordset.Open SQL, Connection
Do While Not Recordset.EOF
ticket = Recordset("ticket")
id = Right(ticket, 2)
suffix = CInt(id)
compare = Left(ticket, Len(ticket) - 3)
search = compare & "-0" & suffix
For Each objFile In colFiles.Files
If Left(objFile.Name, 13) = search Then
Set objNewestFile = objFile
skip = 1
Else
skip = 0
End If
If Left(objFile.Name, 10) = search And skip = 0 Then
Set objNewestFile = objFile
End If
Next
Recordset.MoveNext
On Error Resume Next
objFSO.CopyFile objNewestFile.Path, strDestFolder
Set objFile = Nothing
Loop
这是我回过头来的缩小版本,试图尝试各种复杂的解决方案,如:
FileExists
时,它似乎都无法识别目的地),以下内容非常有用:
ETA:可以有许多共享10位数标识符的重复文件。唯一的好规则是:如果它有13个标识符版本,那么 要移动的那个。如果我使用FileExists
,我的部分问题在于设置路径 - 当我尝试使用通配符时,它不会识别路径。如果我不使用它们,它就不会补偿所有变量。