これは私の最初の質問です。ファイルを再帰的に移動することについての質問
それはどのような私が今やりたいことは、それが見つけたときがあることである
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
に直接移動します。
次に、testのフォルダ全体をループし、上記の規則に従ってファイルを移動します。 私はいくつかの例を探していますが、それらは適合しません。
ありがとうございます。
編集
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を書くのにNotePadしか使えないので、私は既存のファイルをチェックするためのバグがあるのか分からない。それが正しいか?
私に救いの手を貸してください。私はあなたの優しさにとても感謝しています。
自分で試したことを教えてください。 –
私はそれを示しました。お困りの方は – blami