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-Key: 519000

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

Printed on: April 25, 2024 at 08:04 o'clock

Mitglied: 141965
Solution 141965 Nov 26, 2019 updated at 09:47:36 (UTC)
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%')"  
Member: chef1568
chef1568 Nov 26, 2019 at 10:12:54 (UTC)
Goto Top
Hallo voucher,

das funktioniert super, danke face-smile

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

VG
Mitglied: 141965
141965 Nov 26, 2019 updated at 10:20:07 (UTC)
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
Member: chef1568
chef1568 Nov 26, 2019 at 14:15:26 (UTC)
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
Mitglied: 141965
141965 Nov 26, 2019 updated at 15:14:15 (UTC)
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.
Member: chef1568
chef1568 Nov 27, 2019 at 06:35:59 (UTC)
Goto Top
Hi voucher,

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

VG