mo2402
Goto Top

WSH - Script zum durchsuchen eines Ordners nach bestimmten Dateiendungen

Hallo,

ich brauche ein WSH Script das mir Ordner nach bestimmten Dateiendungen durchsucht.
Ich habe dieses Script hier gefunden, nur bräuchte ich nun das "Jokerzeichen" damit er nicht nach "Datei.txt" sucht, sondern nach allen *.txt

Das Script habe ich soweit:
strComputer = "."  
Set fs = CreateObject("Scripting.FileSystemObject")  

Sub FileSearch(pfad)
  Set ordner = fs.GetFolder(pfad)
  Set dateien = ordner.files
  For Each datei In dateien
    If datei.Name  =  "Datei.txt" Then   
		WScript.Echo datei.Name
    End If

  Next
  Set unterordner = ordner.subfolders
  For Each uo In unterordner
    FileSearch(uo)
  Next
End Sub

FileSearch("C:\DELL")  
habe schon *, $ und % ausprobiert.

Content-Key: 97042

Url: https://administrator.de/contentid/97042

Printed on: April 26, 2024 at 15:04 o'clock

Member: Biber
Biber Sep 16, 2008 at 10:59:41 (UTC)
Goto Top
Moin mo2402,

dann ändere die Zeile
...
If datei.Name = "Datei.txt" Then 
...
...auf...
...If  right(datei.Name, 4) = ".txt" Then 
...
...oder warte auf bastla.

Grüße
Biber
Member: bastla
bastla Sep 16, 2008 at 11:01:05 (UTC)
Goto Top
Hallo mo2402!

"Jokerzeichen" damit er nicht nach "Datei.txt" sucht, sondern nach allen *.txt
... gibt es für diesen Zweck in VBS nicht, daher etwa so:
Set fs = CreateObject("Scripting.FileSystemObject")  

Sub FileSearch(pfad)
Set ordner = fs.GetFolder(pfad)
Set dateien = ordner.files
For Each datei In dateien
    If LCase(fs.GetExtensionName(datei.Name)) = "txt" Then WScript.Echo datei.Path  
Next

Set unterordner = ordner.subfolders
For Each uo In unterordner
    FileSearch(uo)
Next
End Sub

FileSearch("C:\DELL")  
Da Du ja rekursiv suchst, fände ich die Ausgabe des gesamten Pfades einer gefundenen Datei sinnvoll (und habe das Script dahingehend geändert).

Das "LCase()" in Zeile 7 soll sicher stellen, dass auch zB eine "BLA.TXT" gefunden wird.

Grüße
bastla

@Biber: Sorry, habe in letzter Zeit etwas Verspätung ... face-wink
Member: mo2402
mo2402 Sep 19, 2008 at 08:35:56 (UTC)
Goto Top
Super danke funktioniert super! Gibt es auch noch eine Function wie z.B. fs.GetFileSize oder so, damit ich die Größe der einzelnen Datein noch rausfinden kann?
Member: Biber
Biber Sep 19, 2008 at 09:27:04 (UTC)
Goto Top
Moin mo2402,

gibt es...allerdings eher als Eigenschaft .Size des File-Objects
[= wäre oben:
oFile = fs.GetFile( datei.name)
Filesize= oFile.Size
...
]...
Diese Mimik wurde hier im Forum schon mehrfach durchdekliniert (z.B. hier).

Tipp: alle Möglichkeiten des FileSystemObjects bzw. des File-Objects findest Du via Suchmaschine.
Grüße
Biber
Member: bastla
bastla Sep 19, 2008 at 10:01:45 (UTC)
Goto Top
... bzw, da ja die einzelnen Datei-Objekte ohnehin schon über die "For"-Schleife (ab Zeile 6) angesprochen werden, einfach
Filesize = datei.Size
Zusatztipp: Auf dies(ey)er face-wink Seite findest Du einen Link zum Download der (deutschen) "script56.chm" ...

Grüße
bastla