Jump to content
Sign in to follow this  
bergesel

Aktuelle Datei ausgeben

Recommended Posts

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

Share this post


Link to post

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.

Share this post


Link to post

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

Share this post


Link to post

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")

Share this post


Link to post

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 ;)

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...