http://dieseyer.de • all rights reserved • © 2011 v11.4
'v4.5*****************************************************
' File: eventlog-bluescreen.vbs
' (aus DateiZeilenweiseLesenBearbeitenSchreiben.vbs )
' Autor: dieseyer@gmx.de
' dieseyer.de
'
' BlueScreens stehen nicht im Eventlog. Um zu sehen, wie oft
' es mögicherweise eine gegeben hat, kann man auswerten, wie
' oft die EventID 6006 (Shutdown) fehlt.
'
'************************************************************
Option Explicit ' Siehe http://dieseyer.de/dse-wsh-lernen.html#OptionExpl
Dim WSHShell, fso, FileIn, FileOut
Dim Datei, Txt, i, oArgs
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
set oArgs = Wscript.Arguments
' Fals ein Argument übergeben wurde, sollte es einen Dateinamen
' enthalten
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For i = 0 to oArgs.Count - 1 ' hole alle Argumente
Datei = oArgs.item(i)
If not fso.FileExists( Datei ) then
' MsgBox UCase( Datei ) & " existiert nicht!" & vbCRLF & vbCRLF & " . . . das ist das Ende.", , WScript.ScriptName
' WScript.Quit
End If
Exit For ' nur das erste Argument reicht
Next
' Gibt's keinen Dateinamen, wird das Skript beendet
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if Datei = "" then
MsgBox "Datei auf das Skript ziehen und fallen lassen." & vbCRLF & vbCRLF & vbTab & " Das ist das Ende", , WScript.ScriptName
WScript.Quit
End If
Set FileIn = FSO.OpenTextFile(Datei, 1 ) ' Datei zum Lesen öffnen
Datei = fso.GetParentFolderName( WScript.ScriptFullName ) & "\" & fso.GetBaseName( Datei ) & "-.txt"
Set FileOut = FSO.OpenTextFile( Datei , 2, true) ' Datei zum Screiben öffnen; 2: immer neu anlegen
' alle Zeilen lesen
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
i= 1
Do While Not (FileIn.atEndOfStream) ' wenn Datei nicht zu ende ist, weiter machen
' FileOut.WriteLine( vbCRLF & now() & vbCRLF ) ' nur Für Testzwecke
Txt = FileIn.ReadLine
Txt = Replace( Txt, ".04 " , ".04 " )
Txt = Replace( Txt, " EventLog Informationen --- " , " " )
Txt = Replace( Txt, " --- " , " " )
If Instr( Txt, "6005") Then FileOut.WriteLine( "+ " & Txt & vbTab & i ) : i = i + 1
If Instr( Txt, "6006") Then FileOut.WriteLine( "- " & Txt )
' If Instr( Txt, "6009") Then FileOut.WriteLine( Txt )
Loop
FileIn.Close
Set FileIn = nothing
FileOut.Close
Set FileOuT = nothing
' (Ziel-) Datei anzeigen
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WSHShell.run "notepad """ & Datei & """" , , True ' True: Skriptabarbeitung wartet bis Programm (notepade) beendet ist
' (Ziel-) Datei löschen
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' fso.DeleteFile( Datei )
http://dieseyer.de • all rights reserved • © 2011 v11.4