Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch soll prüfen ob eine XML-Datei vorhanden ist und dann mehrere Informationen auslesen und und in eine LOG-Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: tester23

tester23 (Level 1) - Jetzt verbinden

02.04.2013 um 10:16 Uhr, 2462 Aufrufe, 6 Kommentare

Hallo,

ich bin neu hier und brauche wie immer gleich Hilfe von den Profis.

In meinem Fall soll per Batch geprüft werden ob eine Xml-Datei in einem ganz bestimmten Ordner vorhanden ist und wenn JA, sollen dann mehrere Informationen aus dieser Xml ausgelesen werden und per Email versendet werden.

Den ersten Teil (die Überprüfung ob Xml vorhanden ist bekomme ich hin.
Auch den letzten Teil (per Email versenden) bekomme ich auch hin.

Aber aus der Xml auslesen will einfach nicht funktionieren.
Die Xml sieht wie folgt aus:

<JobDetails>
<SerialNumber>1234567890</SerialNumber>
<MessageID>ef574eb2-3cc4-43c6-86ca-2abc3d5ccc94</MessageID>
<ProgressCode>1</ProgressCode>
<ProgressMsg>OK</ProgressMsg>
<Attempts>1</Attempts>
<Timestamp>20130328-0609</Timestamp>
<SwitchState>Aus</SwitchState>
<ServicePointName>DE000536247680000100027012000S036</ServicePointName>
<Source>Lichtsensor</Source>
</JobDetails>
<JobDetails>
<SerialNumber>1234567891</SerialNumber>
<MessageID>f2650a02-7f12-4e2e-89fb-88896cf2f4e7</MessageID>
<ProgressCode>1</ProgressCode>
<ProgressMsg>NOK</ProgressMsg>
<Attempts>1</Attempts>
<Timestamp>20130328-0609</Timestamp>
<SwitchState>Aus</SwitchState>
<ServicePointName>DE000536247680000100027012000S028</ServicePointName>
<Source>Lichtsensor</Source>
</JobDetails>

Das ist nur ein Ausschnitt, es sind ca. 10 solche Jobs hintereinander vorhanden.
Per Batch soll überprüft werden ob <ProgressMsg>OK ist, wenn ja GOTO Next und wenn
>ProgressMsg> NOK ist, dann sollen folgende Informationen
>SerialNumber>1234567891
<ProgressMsg>NOK
<TimeStamp>20130328-0609
in eine Log-Datei geschrieben werden und dann per Email versendet werden.

Es wäre super wenn mir jemand hier helfen könnte!?

Viele grüße und besten Dank im Voraus

tester23
Mitglied: Endoro
02.04.2013 um 12:06 Uhr
Hi tester23,

leider habe ich keine Idee von deinen Vorkenntnissen, du hast keinen Code aufgeschrieben. Ich würde zB mal so anfangen:

01.
for /f "tokens=1,2 delims=><" %%i in (mylog.xml) do echo %%i %%j

bb
Bitte warten ..
Mitglied: tester23
02.04.2013 um 14:22 Uhr
Vielen Dank für die schnelle Antwort,

mein Code ist noch nicht volständig, und funktioniert nut in Teilen, deswegen habe ich Ihn hier nicht reingestellt.
Mein Problem ist die Suche nach dem möglichen Wert NOK in

<ProgressMsg>NOK</ProgressMsg>

und wenn ich ein NOK finde (die meisten sind ja sowieso OK), dann sollen die Werte

>SerialNumber>1234567891
<ProgressMsg>NOK
<TimeStamp>20130328-0609

die zu diesem NOK-Wert gehören in eine LOG-Datei geschreiben werden.

Ich komme einfach nicht mit diesen "tokens" Befehl nicht klar.

Wenn mit Jemand eine dabei helfen könnte, wäre das echt super!

viele Grüße
tester23
Bitte warten ..
Mitglied: ramses345
02.04.2013 um 18:30 Uhr
Hi,

Um welches Betriebssystem handelt es sich?
Ist die powershell drauf?

Lg
Bitte warten ..
Mitglied: ramses345
02.04.2013 um 19:20 Uhr
Anbei ein kurzes PowershellScript welches man erweitern müsste:


$xmlort = 'C:\Temp\new 2.xml'

$da = Test-Path $xmlort


if ($da -eq $true){

[xml]$xml = Get-Content $xmlort

if ($xml.JobDetails.ProgressMsg -ne "OK"){

"Serialnumber: " + $xml.JobDetails.SerialNumber >> C:\Temp\Logfehler.txt
"Status: " + $xml.JobDetails.ProgressMsg >> C:\Temp\Logfehler.txt
"Zeitstempel: " + $xml.JobDetails.Timestamp >> C:\Temp\logfehler.txt
}

}
else {


Write-Output "Datei ist nicht vorhanden"
}
Bitte warten ..
Mitglied: Endoro
02.04.2013 um 22:33 Uhr
Es scheint ja wirklich ein ernstes Problem mit den tokens zu geben

01.
@echo off &setlocal enabledelayedexpansion 
02.
for /f "tokens=1,2 delims=><" %%i in (mylog.xml) do ( 
03.
	if "%%i"=="SerialNumber" set "SerialNumber=%%j" 
04.
	if "%%i"=="ProgressMsg" set "ProgressMsg=%%j" 
05.
	if "%%i"=="Timestamp" set "Timestamp=%%j" 
06.
	if "%%i"=="/JobDetails" if "!ProgressMsg!"=="NOK" ( 
07.
		echo(!SerialNumber! !ProgressMsg! !Timestamp! 
08.
09.
)

bb
Bitte warten ..
Mitglied: tester23
03.04.2013 um 14:05 Uhr
Hallo mfm4aa,

vielen Dank, das hat mir schon sehr geholfen!
Ich habe nur noch ein kleines Problemchen:
Evtl. ist es eine Kleinigkeit, aber ich bekomme es nicht hin.

Angenommen, ich habe 4 Jobs (d.h. 4 "ProgressMsg" in der XML-Datei).
Drei davon sind OK und eine ist NOK.
Der obige Code gibt mit ja nur etwas aus wenn er einen NOK findet und für den gibt er ja etwas aus was ich weiterverarbeiten kann.
Ich brauche also eine "else" Verkünpfung irgendwo im Code mit der ich dann auch für "ProgressMsg" OK auch etwas ausgeben kann.
Das war mit gestern bei der Aufgabenstellung noch nicht bewusst.
Alle meine versuche mit "else" zu arbeiten haben heute keinen Erfolg gebracht!

Viele grüße
tester23
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Mittels Batch bestimmte Information aus unbekannter Textdatei auslesen und in XML-Datei schreiben
gelöst Frage von tardezyxBatch & Shell3 Kommentare

Hallo, es sind innerhalb eines Verzeichnisses sehr viele Unterordner vorhanden, in denen sich jeweils eine Textdatei befindet, deren Strukturen ...

Windows Server
Log-Datei via Batch auslesen
gelöst Frage von Ironhead-HaynsWindows Server3 Kommentare

Hallo zusammen, ich drehe mich mal wieder im Kreis und komme durch den Wald vor lauter Bäumen nicht durch! ...

VB for Applications
XML Datei auslesen mit Excel
Frage von kaiuwe28VB for Applications10 Kommentare

Hallo zusammen, ich mal wieder Leider komme ich nicht weiter. Ich möchte aus einem Ordner mit mehreren XML Dateien ...

Batch & Shell
In Batch auf Erstelldatum einer Datei prüfen
gelöst Frage von AS-N00Batch & Shell5 Kommentare

Hallo, foolgendes Problem. Ich muss eine leer Datei "dpd.ini" in "d:\bw50" erstellen, wenn in einem Ordner "d:\bw50\dpd\export\" es keine ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 10 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 17 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 18 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 22 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...