none
Wert/Computername in XML ändern/tauschen RRS feed

  • Frage

  • Hallo, ich stehe aktuell vor einem Problem. Ich würde gerne für ein Deployments, ein PowerShell-Script integrieren, dass einen Wert in einer XML-Datei abändert und danach in ein vorgegebenes Verzeichnis speichert. 

    In der XML-Datei soll in der Zeile <Computer/Viewer-Name> der Wert mit dem aktuellen Computernamen ausgetauscht werden.

    Da ich in Powershell Scripting noch nicht so fix bin und am Anfang stehe, wäre ich über jede Hilfe dankbar. 

    Gruß Mario



    • Bearbeitet MaroPi Montag, 14. März 2016 20:34
    Montag, 14. März 2016 20:33

Antworten

  • Hi Mario,

    ich kenne deine XML-Struktur jetzt nicht, aber folgendes Beispiel müsste genau das machen was du willst:

    $file = "C:\temp\test.xml"
    
    $xml = [xml](Get-Content -Path $file)
    
    $xml.buecher.buch.isbn = "987654321"
    
    $xml.Save($file)

    Das dazugehörige XML würde bei mir so aussehen:

    <buecher>
     <buch>
      <autor>Meister</autor>
      <titel>Titel 123</titel>
      <isbn>1234512345</isbn>
     </buch>
    </buecher>

    Abhängig davon wo dein Element steht musst du die 3. Zeile im Skript anpassen.

    Gruß

    Christian


    Christian Groebner MVP Forefront


    Montag, 14. März 2016 20:52

Alle Antworten

  • Hi Mario,

    ich kenne deine XML-Struktur jetzt nicht, aber folgendes Beispiel müsste genau das machen was du willst:

    $file = "C:\temp\test.xml"
    
    $xml = [xml](Get-Content -Path $file)
    
    $xml.buecher.buch.isbn = "987654321"
    
    $xml.Save($file)

    Das dazugehörige XML würde bei mir so aussehen:

    <buecher>
     <buch>
      <autor>Meister</autor>
      <titel>Titel 123</titel>
      <isbn>1234512345</isbn>
     </buch>
    </buecher>

    Abhängig davon wo dein Element steht musst du die 3. Zeile im Skript anpassen.

    Gruß

    Christian


    Christian Groebner MVP Forefront


    Montag, 14. März 2016 20:52
  • Danke schon mal. Probier ich gleich mal aus. Könnte ich für den Wert - in deinem Beispiel --> die Zahlen - ein Befehl zum auslesen des Computernamens eintragen. %computername% ?
    • Bearbeitet MaroPi Dienstag, 15. März 2016 11:21
    Dienstag, 15. März 2016 11:21
  • Hi,

    klar das geht, den lokalen Computernamen bekommst du über $env:computername heraus.

    Also so dann:

    $xml.buecher.buch.isbn = $env:computername

    Gruß

    Christian


    Christian Groebner MVP Forefront

    Dienstag, 15. März 2016 11:28
  • Danke dir. Hat alles super funktioniert
    Sonntag, 20. März 2016 10:16
  • Hi, der Post hat mir sehr weitergeholfen. Leider habe ich eine XML-Datei, die ein Tag mit leerzeichen besitzt. Und ich vermute daher geht es nicht.

    XML:

    <Settings>
        <Setting name="Use Pasv mode">1</Setting>
    </Settings>

    Freitag, 7. Juli 2017 14:52
  • > Leider habe ich eine XML-Datei, die ein Tag mit leerzeichen besitzt. Und ich vermute daher geht es nicht.

    Warum sollte das nicht gehen? Und der Thread ist 1 Jahr alt - besser Du machst einen neuen auf :)

    Freitag, 7. Juli 2017 14:59