bergesel 10 Geschrieben 25. November 2008 Melden Teilen Geschrieben 25. November 2008 Hallo zusammen gerne möchte ich aus einem log verzeichniss nur die aktuellste datei ausgeben. wie kann ich dies am besten lösen. momentan lese ich einfach den ganzen ordner aus. dem entsprechend zeigt er mir auch alle files an. wen ich es mit if exist mache muss ich ja den dateinamen angeben, dieser wechselt aber immer und zwar auf datum sprich so 25112008.log. und mit for each habe ich alle log dateien. Set objfs = CreateObject("Scripting.FileSystemObject") Set objfolder = objfs.GetFolder("C:\Documents And Settings\All Users\Application Data\Symantec\Symantec AntiVirus Corporate Edition\7.5\Logs") For Each objfile In objfolder.Files On Error Resume Next 'WScript.Echo objfile.Name 'WScript.Echo objfile.shortname WScript.Echo objfile.datelastmodified Next es ist auch möglich das 3 tage kein log erstellt wird dann möchte ich einfach das aktuellste file ausgeben. danke für infos – so habs halbwegs hinbekommen :) Set objfs = CreateObject("Scripting.FileSystemObject") Set objfolder = objfs.GetFolder("C:\Documents And Settings\All Users\Application Data\Symantec\Symantec AntiVirus Corporate Edition\7.5\Logs") For Each objfile In objfolder.Files dateilog = DateDiff("d", objfile.datelastmodified, Now) If dateilog<3 Then WScript.Echo objfile.datelastmodified End If mein problem ist nur noch das ich die log von den letzten 3 tage habe. wenn es älter ist wird es ja nicht angezeigt. wie kann ich dies noch abfangen??? Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 25. November 2008 Melden Teilen Geschrieben 25. November 2008 Moin, lies das Datum jeder Logdatei in eine Variable ein. Wenn das Datum der als nächstes betrachteten Datei "jünger" ist als der Wert in der Variablen, schreibst du es als neuen Wert in die Variable. Wenn nicht, ignorierst du es. Am Ende gibst du den Wert der Variablen aus. Das dürfte für den Zweck effizient genug sein. Gruß, Nils PS. Deine Shift-Taste scheint defekt zu sein. Zitieren Link zu diesem Kommentar
bergesel 10 Geschrieben 26. November 2008 Autor Melden Teilen Geschrieben 26. November 2008 danke hab dies nun so gelöst: Set objfs = CreateObject("Scripting.FileSystemObject") Set objfolder = objfs.GetFolder("C:\Documents And Settings\All Users\Application Data\Symantec\Symantec AntiVirus Corporate Edition\7.5\Logs") Dim maxlog maxlog = 100 For Each objfile In objfolder.Files dateilog = DateDiff("d", objfile.datelastmodified, Now) If dateilog < maxlog Then maxlog = dateilog End If Next WScript.Echo maxlog Zitieren Link zu diesem Kommentar
bergesel 10 Geschrieben 27. November 2008 Autor Melden Teilen Geschrieben 27. November 2008 wie muss ich dies noch anpassen damit er mir nicht die lokale maschine ausliest? sonst habe ich bei anderen abfragen ja so was drin: Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 27. November 2008 Melden Teilen Geschrieben 27. November 2008 Indem Du objfs.GetFolder z.B. mit einem UNC-Pfad aufrufst: objfs.GetFolder("\\" & strMachine & "\c$\Verzeichnis") Im o.g. Fall natürlich Admin-Rechte vorausgesetzt ;) Zitieren Link zu diesem Kommentar
bergesel 10 Geschrieben 27. November 2008 Autor Melden Teilen Geschrieben 27. November 2008 ja genau funktioniert so !! vielen dank :) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.