Auswerten von Logdateien

Post Reply
bmergel
Posts: 8
Joined: 06. Sep 2012, 11:46
Contact:

Auswerten von Logdateien

Post by bmergel » 23. May 2013, 10:53

Moin,
ich versuche gerade, Logdateien auszuwerten. Zur Auswahl stehen eine Textdatei im Unicode (result.log) und eine XML-Datei (result.xml). Eigentlich ganz einfach und schon 1000mal gemacht.

Problem 1: Auswertung der Textdatei über DoesTextInFileExist

Code: Select all

If DoesTextInFileExist ("No Updates are available, nothing to do", "%TEMP%\result.log")=="1" Then "Set:InstallationOK" Else "Set:InstallationError" EndIf
Hier scheitere ich daran, das die Datei als Unicode vorliegt und die setup unabhängig vom Dateiinhalt immer in "Set:InstallationError" läuft.
Wenn ich den Inhalt manuell als ANSI speichere funktioniert alles wunderbar. Leider erstellt das Tool nur Unicode :-(

Problem 2: Auswertung der XML-Datei

Code: Select all

Set RetCode=ReadXmlText("%TEMP%\%ProductName%.xml", "/wuinstall/result/return_code")
Dies klappt wunderbar - wenn vom vorigen (Test-)Aufruf noch eine XML-Datei im TEMP-Verzeichnis liegt.
Auf einem leeren Rechner erhalte ich beim Installationsstart den Fehler "Kann Datei 'C:\Windows\TEMP\result.xml' nicht öffnen!". Offenbar prüft die setup.exe bei der Initialisierung auf die Existenz der XML-Datei ... also kann ich damit auch keine Installationslogs auswerten :-(

Das konkrete Problem konnte ich jetzt durch Auswerten des Errorlevel lösen :)
Trotzdem würde mich interessieren, wie ich XML-Logdateien auswerten kann die während der Installation erstellt werden. Wenn es schon so handliche Befehle wie ReadXmlText gibt 8)

ciao
Brigitte

P.S. Setup.exe ist Version 14.2.1.191

User avatar
r.wiegel
Posts: 903
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Auswerten von Logdateien

Post by r.wiegel » 23. May 2013, 12:06

Hallo,

zu Problem 1:
Man könnte das mit Uniconvert.exe lösen (also von Unicode nach Ansi umwandeln und erst dann auswerten):

Code: Select all

[Set:Product]
1:Windows\Temp\Uniconvert.exe,                                       %Windows%,                   NORMAL,                   81920
...
Callhidden "%windows%\Temp\Uniconvert.exe" "%TEMP%\result.log" "%TEMP%\result_ansi.log" /ANSI

If DoesTextInFileExist ("No Updates are available, nothing to do", "%TEMP%\result_ansi.log")=="1" Then "Set:InstallationOK" Else "Set:InstallationError" EndIf
zu Problem 2:

Code: Select all

If DoesFileExist ("%TEMP%\%ProductName%.xml") == "1" Then "Set:XMLCheck" EndIf
....
[Set:XMLCheck] 
Set RetCode=ReadXmlText("%TEMP%\%ProductName%.xml", "/wuinstall/result/return_code")
Gruß
Roman
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

bmergel
Posts: 8
Joined: 06. Sep 2012, 11:46
Contact:

Re: Auswerten von Logdateien

Post by bmergel » 23. May 2013, 12:58

Hi,
r.wiegel wrote:zu Problem 1:
Man könnte das mit Uniconvert.exe lösen (also von Unicode nach Ansi umwandeln und erst dann auswerten):
guter Tipp, Danke!
r.wiegel wrote: zu Problem 2:

Code: Select all

If DoesFileExist ("%TEMP%\%ProductName%.xml") == "1" Then "Set:XMLCheck" EndIf
Das klappt nicht weil die setup.inf gar nicht erst anläuft sondern gleich mit der Meldung abbricht, das die XML-Datei nicht vorhanden ist.
Im Beispiel unten wird das "Echo Anfang" schon nicht ausgegeben, zu Bla1 oder Bla2 kommt er gar nicht.

Code: Select all

[Product]
Echo Anfang
#Set:Product, DONTDELETE

[Set:Product]
Echo Bla1
If DoesFileExist ("%TEMP%\%ProductName%.xml") == "1" Then "Set:XMLCheck" EndIf
....
[Set:XMLCheck] 
Echo Bla2
Set RetCode=ReadXmlText("%TEMP%\%ProductName%.xml", "/wuinstall/result/return_code")
ciao
Brigitte

User avatar
r.wiegel
Posts: 903
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Auswerten von Logdateien

Post by r.wiegel » 23. May 2013, 13:21

Du hast keine Pro-Version oder?
auch wenn nicht, wir können die Info nutzen:

/simple_error
Available in WuInstall Pro
With this option, WuInstall returns 0 for any success and 1 for any error, regardless of the reason.
Which means, if the return code would be 0, 2, 3, 5 or 10, WuInstall returns 0 and displays the message
Simple result specified, returning 0 for success!

In any other case (the remaining codes 1, 4, 6, 11, 12), WuInstall returns 1 and displays the message

ich hätte mal mit der Abfrage probiert:

Code: Select all

If %Errorlevel%=="0" | %Errorlevel%=="2" | %Errorlevel%=="3" | %Errorlevel%=="5" | %Errorlevel%=="10" Then "Set:InstallationOK" Else "Set:InstallationError" EndIf
Gruß
Roman
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

bmergel
Posts: 8
Joined: 06. Sep 2012, 11:46
Contact:

Re: Auswerten von Logdateien

Post by bmergel » 23. May 2013, 13:32

Hi Roman,
das konkrete Problem hab ich durch die Abfrage des Errorlevel lösen können, das klappt glücklicherweise auch wunderbar :)

Für die Zukunft hätte ich halt gerne gewußt, wie ich ReadXmlText zur Auswertung nutzen kann.

ciao
Brigitte

User avatar
r.wiegel
Posts: 903
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Auswerten von Logdateien

Post by r.wiegel » 23. May 2013, 13:50

sorry, habe übersehen.

Der Befehl verträgt wohl keine Variable. So geht's (getestet):

Code: Select all

Set RetCode=ReadXmlText("C:\Temp\wuinstall.xml", "/wuinstall/result/return_code")
Echo %RetCode%
Gruß
Roman
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

bmergel
Posts: 8
Joined: 06. Sep 2012, 11:46
Contact:

Re: Auswerten von Logdateien

Post by bmergel » 23. May 2013, 14:20

r.wiegel wrote: Der Befehl verträgt wohl keine Variable. So geht's (getestet):
Kannst Du das bitte nochmal probieren? Bei mir klappt das nicht - ich bekomme schon das "Echo Start" nicht sondern direkt die Meldung "Kann C:\Windows\Temp\wuinstall.log nicht öffnen"
Wichtig: Die XML-Datei darf vor der Installation nicht vorhanden sein (sonsts gehts nämlich ;-) )

Code: Select all

[Product]
Echo Start
#Set:Product, DONTDELETE

[Set:Product]
1:WUInstall.exe,         , ALWAYS

Call "%APP%\WUInstall.exe" /quiet /install /logfile "C:\Windows\Temp\wuinstall.log" /xmlout "C:\Windows\Temp\wuinstall.XML" /reboot_if_needed 30
Set RetCode=%Errorlevel%
Echo %RetCode%
ciao
Brigitte

User avatar
r.wiegel
Posts: 903
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Auswerten von Logdateien

Post by r.wiegel » 23. May 2013, 15:16

die Option /xmlout ist nur in WuInstall Pro verfügbar, die habe ich leider nicht.
Ich habe die XML-Datei selbst angelegt. Wenn Wildcards im Pfad sind, dann bekomme ich die gleiche Fehlermeldung.
Ohne geht es.

Gruß
ROman
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

bmergel
Posts: 8
Joined: 06. Sep 2012, 11:46
Contact:

Re: Auswerten von Logdateien

Post by bmergel » 23. May 2013, 15:21

schade :-( (btw. die Pro-Version läßt sich von www.wuinstall.com runterladen, ist auf 2 Wochen Nutzung beschränkt)

Wenn die XML-Datei vor dem Ausführen des Setup vorhanden ist klappt es bei mir immer, egal ob mit oder ohne Variable.
Was passiert bei Dir wenn keine XML-Datei vorhanden ist? Bekommst Du die Echo-Meldungen oder bricht die Installation schon beim Initialisieren ab?
Dann wäre interessant zu wissen, ob Du eine andere setup.exe Version hast.

ciao
Brigitte

User avatar
r.wiegel
Posts: 903
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Auswerten von Logdateien

Post by r.wiegel » 23. May 2013, 16:38

OK, ich habe das nachgestellt. Der Befehl braucht die Datei sonst führt das zur Fehlermeldung.
Wie wäre es mal eine dummy-Datei mit z.B. dem Inhalt unter dem Pfad anzulegen?:
<wuinstall>
<result>
<return_code>000</return_code>
</result>
</wuinstall>

Die soll vom Installer nach jedem Lauf überschrieben werden, der Empirum-Interpreter bekommt aber im Vorfeld das, was er wollt.

Gruß
Roman
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

bmergel
Posts: 8
Joined: 06. Sep 2012, 11:46
Contact:

Re: Auswerten von Logdateien

Post by bmergel » 27. May 2013, 09:46

Moin Roman,
die Idee mit der Dummy-Datei hatte ich auch schon - aber dann müßte ich nur für die Dummy-XML-Datei ein eigenes Paket bauen. Das kann hinterher wieder keiner nachvollziehen :?

Glücklicherweise klappt's ja mit dem errorlevel, die XML-Lesebefehle der setup.inf kann man für die Logauswertung anscheinend abhaken :(

ciao
Brigitte

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 5 guests