Jump to content

Aktuelle Datei ausgeben


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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???

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...