Это мой первый вопрос и надеюсь, вы можете помочь.
Это скрипт о перемещении файла из каждой подпапки в другую папку, только если файл новый
Например
C:\Test\Sub1
C:\Test\Sub1\Sub
C:\Test\Sub2\Sub
D:\Test\Sub1
D:\Test\Sub1\Sub
D:\Test\Sub2\Sub
Что я хочу сейчас сделать, так это то, что когда он обнаружит новый файл с расширением Pdf
, zip
, xls
в C:\Test\Sub2\Sub
, он сразу перейдет к D:\Test\Sub2\Sub
.
Затем он зациклит всю папку теста и переместит файл в соответствии с вышеуказанным правилом.
Я искал какой-то пример, но он не подходит.
Заранее спасибо.
Редактировать
Option Explicit
const DestFolder = "B:\Testing\"
MoveFiles
Sub MoveFiles
' folder to look in
Dim strFolderPath : strFolderPath = "D:\Temp\Testing\"
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim RegEx : Set RegEx = New RegExp
' specify the extension you want to search for; seperate with a |
' currently searching for .txt and .mdb files
RegEx.Pattern = "\.(pdf|zip|xls|txt)$"
RegEx.IgnoreCase = True
RecurseFolder objFSO, strFolderPath, RegEx
End Sub
Sub RecurseFolder(objFSO, strFolderPath, RegEx)
Dim objFolder : Set objFolder = objFSO.GetFolder(strFolderPath)
Dim objFile, strFileName,dest
For Each objFile In objFolder.Files
strFileName = objFile.Path
If RegEx.Test(strFileName) Then
'Checking whether file exist in destination
if not objFSO.FileExists(destfolder.strFileName) then
objFile.Move destfolder
else
msgbox "File is already existed"
End If
End If
Next
Dim objSubFolder
For Each objSubFolder In objFolder.SubFolders
RecurseFolder objFSO, objSubFolder.Path, RegEx
Next
End Sub
Я могу перебирать подпапки, но не могу перейти в папку в соответствии с исходной папкой. Например,
FileA
приходят от D:\Temp\A
. Он будет перемещен в B:\Temp\A
. Но теперь он перешел только на B:\Temp
. Кроме того, поскольку я могу использовать только блокнот для записи VBS, я не могу понять, есть ли какая-либо ошибка для проверки существующего файла. Это правильно?
Пожалуйста, протяните мне руку помощи. Буду очень признателен за вашу доброту.