Autor Thema: VBS gebe mir alle cache.dsk in einer txt aus ....  (Gelesen 2294 mal)

Offline adminnaddel

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 819
  • Geschlecht: Männlich
  • What a wonderful girl, so beautiful und se....;-)
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

Offline adminnaddel

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 819
  • Geschlecht: Männlich
  • What a wonderful girl, so beautiful und se....;-)
Re: VBS gebe mir alle cache.dsk in einer txt aus ....
« Antwort #1 am: 31.01.05 - 14:09:05 »
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

Offline Christopher

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.060
  • Geschlecht: Männlich
  • Dumm ist der, der dummes tut.
Re: VBS gebe mir alle cache.dsk in einer txt aus ....
« Antwort #2 am: 31.01.05 - 15:16:40 »
in ls würde das so aussehen

Client & Server R 5.011
Principal Certified Lotus Professional R5 System Administration
Microsoft Certified Systems Engineer 2000
Microsoft Certified Systems Administrator 2000
Microsoft Certified Systems Administrator 2003
Microsoft Certified Systems Engineer 2003

Offline sloe

  • Aktives Mitglied
  • ***
  • Beiträge: 175
  • Geschlecht: Männlich
  • Never stop a running admin...
Re: VBS gebe mir alle cache.dsk in einer txt aus ....
« Antwort #3 am: 31.01.05 - 17:20:18 »
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
Gruß
sloe

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz