Wert in .xml per Batch ändern
Hallo an alle,
ich stehe leider seit kurzem vor einem "kleinen" Problem.
Zuerst: Ja ich weiß so ein ähnliches Thema gibt es hier schon, aber da kann ich keinen Überblick behalten, bzw. für meine Frage is da keine direkte Lösung dabei.
So nun zu meinem Problem...
und zwar hab ich die Aufgabe bekommen, eine bestimmte Zeile innerhalb einer XML Datei zu ändern, bzw für mehrere innerhalb eines Ordners.
<?xml version="1.0" encoding="UTF-8"?>
-<Root ICVersion="5.2f00" ICSenderLocation="CZ" ICSender="10" ICReceiverLocation="D" ICReceiver="1">-<Settings>
So sieht der Anfang der XML Dateien aus, die folgenden Infos sind irrelevant für meine Aufgabe (hoffe auch für die Batch).
Und zwar soll ich nun in der zweiten Zeile den Wert von ICSender="10" ... auf... ICSender="110" ändern.
Leider hänge ich da nun komplett in der Luft und weiß nichmal wie ich richtig anfangen soll...
Hoffe ihr könnt einem Ungläubigen erleuchten und ihn zurück auf den rechten Weg führen.
Leider bin ich noch recht frisch dabei und arbeite mich da erst richtig ein
Ich danke allen jetzt schonmal für die Hilfe!!
MfG KingPick
ich stehe leider seit kurzem vor einem "kleinen" Problem.
Zuerst: Ja ich weiß so ein ähnliches Thema gibt es hier schon, aber da kann ich keinen Überblick behalten, bzw. für meine Frage is da keine direkte Lösung dabei.
So nun zu meinem Problem...
und zwar hab ich die Aufgabe bekommen, eine bestimmte Zeile innerhalb einer XML Datei zu ändern, bzw für mehrere innerhalb eines Ordners.
<?xml version="1.0" encoding="UTF-8"?>
-<Root ICVersion="5.2f00" ICSenderLocation="CZ" ICSender="10" ICReceiverLocation="D" ICReceiver="1">-<Settings>
So sieht der Anfang der XML Dateien aus, die folgenden Infos sind irrelevant für meine Aufgabe (hoffe auch für die Batch).
Und zwar soll ich nun in der zweiten Zeile den Wert von ICSender="10" ... auf... ICSender="110" ändern.
Leider hänge ich da nun komplett in der Luft und weiß nichmal wie ich richtig anfangen soll...
Hoffe ihr könnt einem Ungläubigen erleuchten und ihn zurück auf den rechten Weg führen.
Leider bin ich noch recht frisch dabei und arbeite mich da erst richtig ein
Ich danke allen jetzt schonmal für die Hilfe!!
MfG KingPick
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 253897
Url: https://administrator.de/contentid/253897
Ausgedruckt am: 28.03.2024 um 09:03 Uhr
3 Kommentare
Neuester Kommentar
Hallo KingPick,
Batchscript ist für Diese Aufgabe ungeeignet. Erstens enthalten XML-Dateien viele Zeichen, die vom Batchscript-Interpreter als auszuführender Code angesehen werden (z.B.
Eine Alternative für Dich wäre z.B. VBScript unter Benutzung des MS XML-Parsers. Das (Google-)Stichwort hierzu wäre XMLDOM (siehe auch hier). Mit PowerShell lässt sich bestimmt auch was machen.
Da Du von einer "Aufgabe" sprichst, die im übrigen mit den o.g. Mitteln mit relativ geringem Aufwand lösbar ist, gehe ich mal davon aus, dass Dein Chef(?) herausfinden möchte, ob Du für eine bestimmte Tätigkeit bzw. Arbeitsstelle geeignet bist. Ich glaube, dass Du Dir selbst keinen Gefallen damit tust, Dir hier oder in einem anderen Forum eine Lösung basteln zu lassen und dann per Copy&Paste zu übernehmen. Du musst einfach lernen, Dich in neue Wissensbereiche einzuarbeiten und Problemlösungen selbst zu entwickeln, sonst wirst Du früher oder später in dem Job sowieso untergehen.
Gruß
Friemler
Batchscript ist für Diese Aufgabe ungeeignet. Erstens enthalten XML-Dateien viele Zeichen, die vom Batchscript-Interpreter als auszuführender Code angesehen werden (z.B.
<
und >
), was ein zuverlässiges Parsen von XML-Dateien nahezu unmöglich macht. Zweitens kommt in Deinem Fall noch erschwerend hinzu, dass Deine XML-Datei laut Header in UTF-8 codiert ist, womit Batchscript nicht umgehen kann. Das macht sich bei Sonderzeichen bemerkbar, die einen Zeichencode größer als 127 haben.Eine Alternative für Dich wäre z.B. VBScript unter Benutzung des MS XML-Parsers. Das (Google-)Stichwort hierzu wäre XMLDOM (siehe auch hier). Mit PowerShell lässt sich bestimmt auch was machen.
Da Du von einer "Aufgabe" sprichst, die im übrigen mit den o.g. Mitteln mit relativ geringem Aufwand lösbar ist, gehe ich mal davon aus, dass Dein Chef(?) herausfinden möchte, ob Du für eine bestimmte Tätigkeit bzw. Arbeitsstelle geeignet bist. Ich glaube, dass Du Dir selbst keinen Gefallen damit tust, Dir hier oder in einem anderen Forum eine Lösung basteln zu lassen und dann per Copy&Paste zu übernehmen. Du musst einfach lernen, Dich in neue Wissensbereiche einzuarbeiten und Problemlösungen selbst zu entwickeln, sonst wirst Du früher oder später in dem Job sowieso untergehen.
Gruß
Friemler
Hallo KingPick, Willkommen auf Administrator.de!
Schließe mich Friemler an, Batch ist für XML-Sachen einfach nicht gut geeignet!
Wenn dein File valides XML ist kannst du es z.B. mit Powershell so für alle XML-Dateien eines Ordners machen:
oder wenn die XML-Datei "speziell" ist und nicht konform, dann so für alle XML-Dateien eines Ordners
Grüße Uwe
Schließe mich Friemler an, Batch ist für XML-Sachen einfach nicht gut geeignet!
Wenn dein File valides XML ist kannst du es z.B. mit Powershell so für alle XML-Dateien eines Ordners machen:
gci "C:\temp\*.xml" | %{
$xml = new-Object xml
$xml.Load($_.Fullname)
$xml.Root.IcSender = "110"
$xml.Save($_.Fullname)
}
gci "C:\temp\*.xml" | %{(gc $_.Fullname) -replace 'ICSender="10"','ICSender="110"' | out-file $_.FullName -Encoding utf8}