0
ワイルドカードを使用して特定のディレクトリを検索し、一致するフォルダを出力するスクリプトを作成しました。私が実行している問題は、ワイルドカードが一致する複数のフォルダがあります。スクリプトは一致する最初のフォルダのみを返します。ワイルドカード検索機能をループする方法
私はディレクトリ(私の場合はD:\ P)のコードループを持ち、一致するすべてのフォルダを出力できますか?
ご協力いただければ幸いです。ありがとう!ここで
は私のコードです:
Dim sFile As String, sPathSeek As String, sPathMatch As String
Dim sMainPath As String
sMainPath = sfolderPath 'D:\P\
Dim Path1 As String 'THIS IS THE FIRST STRING I NEED A WILDCARD TO FIND
Path1 = "_Links"
Dim Path2 As String 'THIS IS THE SECOND STRING I NEED A WILDCARD TO FIND
Path2 = "TLP"
'FIND THE FOLDER THAT CONTAINS THE FIRST PATH USING A WILDCARD
On Error Resume Next
sPathSeek = sMainPath & "*" & Path1
sFile = Dir(sPathSeek, vbDirectory)
Do While Len(sFile) > 0
If Left(sFile, 1) <> "." Then
If (GetAttr(sFile) And vbDirectory) = vbDirectory Then
sPathMatch = sFile
Exit Do
End If
End If
sFile = Dir
Loop
MsgBox IIf(sPathMatch = "", "Match not found", "Match: " & sPathMatch)
これにはありませんコードに違いがあるようですが、フォルダ全体をループしないのと同じ出力を得ています。コードがD:\ P \のすべてのフォルダを読み込み、ワイルドカードを使って一致するフォルダを返す方法はありますか? –
スキャンしているパスの直接サブフォルダやネストされたサブフォルダのレベルが深くなっていますか? –
文字列を含むD:\ P \内のすべてのフォルダを取得しようとしています(この場合、ワイルドカードは "_Links"または "TLP"です)。私はこのコードを複数のコンピュータで使用しており、これらのコンピュータ上にある "_Links"または "TLP"フォルダを知りたいと考えています。私のコードは1つのフォルダだけを検索し、それが停止するので、D:\ P \全体で検索を続け、ワイルドカードを含む残りのフォルダを返す必要があります。混乱させて申し訳ありません。 –