Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Dateien in gr. Verzeichnis suchen mit VBS
Frage
versuche mit diesem sub
[code]...
'm_string lautet z.B. "A.*\.h" (RegExp)
set m_flog = ObjFso.CreateTextFile(m_flogname, true, false)
call InOrdnernSuchen(m_suchpfad, m_string)
m_flog.close
sub InOrdnernSuchen(m_qpfad, m_str)
RegExp.IgnoreCase = true
RegExp.Pattern = "("&m_str&")"
if ObjFso.FolderExists(m_qpfad) then
dim m_upfade, m_dateien
set m_qpfad = ObjFso.GetFolder(m_qpfad)
for each m_dateien in m_qpfad.files
if RegExp.Test(m_dateien.Name)=true then
m_flog.WriteLine m_qpfad&"\"&m_dateien.Name&vbLfCr
end if' RegExp.Test(m_dateien.Name)=true
next'for each datei in m_qpfad.files
for each m_upfade in m_qpfad.subfolders
call InOrdnernSuchen(m_upfade, m_str)
next'for each m_upfade in m_qpfad.subfolders
end if' ObjFso.FolderExists(m_qpfad)
RegExp.IgnoreCase = false
end sub' InOrdnernSuchen(m_qpfad)
...[/code]
ein Verzeichnis auf einem Server zu durchsuchen. Nach ca. 80-100 gefundenen Dateien, reagiert das VBS nicht mehr (Strg+Alt+Entf).
Was muss ich noch beachten? Oder hat jmd eine bessere Dateisuche zu Hand?
Dank für jede Hilfe.
Antwort 1 von struppi
Hallo,
Beispiel Dateisuche aus dem Lovletter. Wurde noch dahingehend verändert, daß das Script sich selbst modifiziert. Es korigiert den Pfad in der erste Zeile, wenn die Datei ZB auf dem Rechner verschoben wurde.
gruß struppi
Beispiel Dateisuche aus dem Lovletter. Wurde noch dahingehend verändert, daß das Script sich selbst modifiziert. Es korigiert den Pfad in der erste Zeile, wenn die Datei ZB auf dem Rechner verschoben wurde.
dateipfad = "C:\WINDOWS\Desktop\Arbeitsordner\inhalt_datencd.txt"
datei = "inhalt_datencd.txt"
msgbox WScript.ScriptFullname
set fso = CreateObject("scripting.FilesystemObject")
ok = fso.fileExists(dateipfad)
if ok = true then
msgbox "Hier öffnen der Datei " & dateipfad
else
datei = lcase(Datei)
listadriv
sub listadriv
Set dc = fso.Drives
For Each d in dc
If d.DriveType = 2 or d.DriveType=3 Then
folderlist(d.path&"\")
end if
Next
Msgbox "Die Datei : " & datei & " existiert nicht auf dem Rechner"
end sub
sub folderlist(folderspec)
set f = fso.GetFolder(folderspec)
set sf = f.SubFolders
for each f1 in sf
searchfiles(f1.path)
folderlist(f1.path)
next
end sub
sub searchfiles(folderspec)
set f = fso.GetFolder(folderspec)
set fc = f.Files
for each f1 in fc
ext=lcase(f1.name)
if ext = Datei then
set file = fso.OpenTextFile(WScript.ScriptFullname,1)
file.skipline
vbscopy=file.ReadAll
file.close
set file = fso.OpenTextFile(WScript.ScriptFullname,2)
file.write "dateipfad = """ & f1.path & """" & vbcrlf
file.write vbscopy
file.close
Msgbox "Die gefunde Datei öffnen: " & f1.path
wscript.quit
end if
next
end sub
end if
gruß struppi

