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-ID: 97042

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

Ausgedruckt am: 16.11.2024 um 19:11 Uhr

Biber
Biber 16.09.2008 um 12:59:41 Uhr
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
bastla
bastla 16.09.2008 um 13:01:05 Uhr
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
mo2402
mo2402 19.09.2008 um 10:35:56 Uhr
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?
Biber
Biber 19.09.2008 um 11:27:04 Uhr
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
bastla
bastla 19.09.2008 um 12:01:45 Uhr
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