Sonstiges > Offtopic
VBS gebe mir alle cache.dsk in einer txt aus ....
(1/1)
adminnaddel:
Hallo liebe Gemeinde,
wer suche, der finde .... doch nun ist vorbei!
Hat jemand ein kleines VBS für mich, der mir rekursiv einen Ordner durchsucht, am besten nach einer bestimmten Datei "cache.dsk" und listet diese mir inkl. Path in einer Text auf!
Weiß nun wirklich net mehr weiter.
lg
Andy
adminnaddel:
Okay ... ich mache mal den Anfang:
das folgende Script schreibt mir in die txt.log nur den path zum Folder, nicht aber die Dateien drüber und drin?! :( woran nkönnte es liegen?
Option Explicit
Dim File, FileOut
Dim WSHShell, fso, oArgs
Dim oFolders, oSubFolder, oFiles, Folder
Dim i, Text, Pfad, DateiX, VerzX, Verz(), Datei()
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
set oArgs = Wscript.Arguments
If oArgs.Count > 0 Then
Pfad = oArgs.item(0)
if fso.FileExists( Pfad ) then Pfad = fso.GetParentFolderName( Pfad )
Else
Pfad = fso.GetFolder( "." )
End If
if not fso.FolderExists( Pfad ) then
MsgBox UCase(Pfad) & " existiert nicht!" & vbCRLF & vbCRLF & " . . . das ist das Ende.", , WScript.ScriptName
WScript.Quit
End If
' Dateiliste an Array übergeben
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
i = 0
Set oFolders = fso.GetFolder( Pfad )
Set oFiles = oFolders.Files
For Each DateiX In oFiles
ReDim Preserve Datei(i)
Datei(i) = DateiX.Name
i = i + 1
Next
Set oFiles = nothing
Set oFolders = nothing
' Array an Text übergeben
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Text = ""
If i > 0 then
For i = 0 to UBound( Datei )
Text = Text & Pfad & "\" & Datei(i) & vbCRLF
Next
Else
Text = "keine Dateien vorhanden."
End If
' Verzeichnisliste an Array übergeben
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
i = 0
Set oFolders = fso.GetFolder( Pfad )
Set oSubFolder = oFolders.SubFolders
For Each VerzX In oSubFolder
ReDim Preserve Verz(i)
Verz(i) = VerzX.Name
i = i + 1
Next
Set oFiles = nothing
Set oFolders = nothing
' Array an Text übergeben
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Text = ""
If i > 0 then
For i = 0 to UBound( Verz )
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
File = WScript.ScriptName & ".log"
Set FileOut = fso.OpenTextFile( File , 8, true)
FileOut.WriteLine Text & Pfad & "\" & Verz(i) & vbCRLF
Next
End If
lg
Andy
Christopher:
in ls würde das so aussehen
sloe:
und in vbs so...
' *************************************
' C:\ListAllFiles.vbs
' Liste alle gefundenen Dateien im Ordner/Unterordnern
' mit Log für komplette Pfadangabe
' 31.01.05 17:19
' Version 1
' (C) by Sloe 2005
' *************************************
Option Explicit
Const ForForAppending = 8
Dim oArgs, oFso, oFolder, oShell, objFile
Dim SearchFile, oFolderSub, Pfad, Hit, HitFileName, FileLogReport, PathLogFiles
Call Main
Sub Main
Set oFso = WScript.CreateObject("Scripting.FileSystemObject")
Set oShell = WScript.CreateObject("WScript.Shell")
Set oArgs = Wscript.Arguments
If oArgs.Count > 0 Then
Pfad = oArgs.item(0)
if oFso.FileExists( Pfad ) then Pfad = oFso.GetParentFolderName( Pfad )
Else
Pfad = oFso.GetFolder( "." )
End If
if not oFso.FolderExists( Pfad ) then
MsgBox UCase(Pfad) & " existiert nicht!" & vbCRLF & vbCRLF & " . . . das ist das Ende.", , WScript.ScriptName
WScript.Quit
End If
PathLogFiles = WScript.ScriptName & ".log"
Set FileLogReport = oFso.OpenTextFile(PathLogFiles, ForForAppending, true)
SearchFile = "cache.dsk" ' Search for ...
Set oFolder = oFso.GetFolder(Pfad)
Call ListFiles (oFolder)
WScript.Echo "Auftrag ausgeführt!"
End Sub
Sub ListFiles(oFolder)
For Each objFile In oFolder.Files
If LCase(objFile.Name) = LCase(SearchFile) Then
Hit = objFile.Path
Call LogDatei(Hit)
End If
Next
For Each oFolderSub In oFolder.SubFolders
ListFiles oFolderSub
Next
End Sub
Sub LogDatei(HitFileName)
FileLogReport.WriteLine(HitFileName & vbCrLf)
End Sub
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln