chef1568
Goto Top

XML Value mittels Batch ändern

Hallo zusammen,

ich möchte eine Value innerhalb einer XML verändern.

Beispiel:
<?xml version="1.0" encoding="UTF-16"?> 
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> 
  <RegistrationInfo>
    <Date>2015-02-17T15:19:41.6225114</Date>
    <Author>My-Name</Author>
    <Description>Hier steht die beschreibung</Description>
  </RegistrationInfo>

Die Value "My-Name" des Tags <Author> soll mit %username% ersetzt werden.

Ich habe hierzu schon einige Lösungen ausprobiert aber bin bisher zu keinem Ergebnis gekommen.


Danke und Gruß

Content-ID: 519000

Url: https://administrator.de/contentid/519000

Ausgedruckt am: 05.11.2024 um 10:11 Uhr

141965
Lösung 141965 26.11.2019 aktualisiert um 10:47:36 Uhr
Goto Top
@echo off
set "file=d:\mytask.xml"  
Powershell -EP ByPass -NoP -C "$xml = New-Object XML;$xml.Load('%file%');$xml.Task.RegistrationInfo.Author = $env:Username;$xml.Save('%file%')"  
chef1568
chef1568 26.11.2019 um 11:12:54 Uhr
Goto Top
Hallo voucher,

das funktioniert super, danke face-smile

Nur aus Interesse: Wie sähe die Lösung via Batch aus?

VG
141965
141965 26.11.2019 aktualisiert um 11:20:07 Uhr
Goto Top
Zitat von @chef1568:
Nur aus Interesse: Wie sähe die Lösung via Batch aus?
Batch und UTF-16 und XML ohne richtigen Parser ändern? Lass diesen Bullshit besser gleich!

p.s. Das da oben ist Batch nur eben mit etwas PS gewürzt :-P
chef1568
chef1568 26.11.2019 um 15:15:26 Uhr
Goto Top
Hmm, schade.

Ich hätte noch die Anforderung eine Batch mittels einer Passage in der der oberen Batch zu bearbeiten (find & replace).
Gerne auch mit einer PS-Erweiterung.

Hast du hier vielleicht noch eine Idee?

VG
141965
141965 26.11.2019 aktualisiert um 16:14:15 Uhr
Goto Top
Zitat von @chef1568:

Hmm, schade.

Ich hätte noch die Anforderung eine Batch mittels einer Passage in der der oberen Batch zu bearbeiten (find & replace).
Gerne auch mit einer PS-Erweiterung.
?? Füg die Zeile in deine bisherige Batch ein und gut is, verstehe dein Problem leider nicht.
Hast du hier vielleicht noch eine Idee?
Besser beschreiben dann kann man auch helfen.

Und XML per Batch bearbeiten bringt dir im Endeffekt nur Probleme... lass es, das ist wie gesagt Bullshit, fang am besten gar nicht damit an. Regel Nr. 1: Bearbeite XML-Dateien nur über einen Parser der abschließend die Gültigkeit prüft, denn XML-Dateien sind diesbezüglich sehr pingelig, bringt dir ja nichts wenn du hinterher nur Datenmüll produzierst. Am besten zeitig auf Powershell migrieren.
chef1568
chef1568 27.11.2019 um 07:35:59 Uhr
Goto Top
Hi voucher,

habe mein Problem in ein eigenes Thema ausgelagert: Wert in Batchdatei mit Batch suchen u. ersetzen

VG