Buka dan simpan file konfigurasi xml dengan PowerShell

Saya mencoba membuat skrip untuk mengubah konten file konfigurasi, menyimpannya dan meluncurkan program terkait. File tersebut rupanya adalah file xml dan dengan skrip yang saya buat saya menyimpannya dalam file teks biasa. Mungkin itulah alasan mengapa program saya tidak dapat dimulai lagi. Jadi bagaimana saya bisa menyimpan dalam xml?

Ini skripnya:

$content = [XML](Get-Content("path\file.config"))
$content = $content.replace("IP address","Other IP address")
$content | out-file "path\file.config"

Terima kasih sebelumnya

Ben


person RazZ    schedule 14.07.2017    source sumber
comment
Pertama: Tolong jangan gunakan regex di xml. Jelas tidak ada yang salah dengan skrip Anda. Bisakah Anda menunjukkan isi file.config   -  person Mathias R. Jessen    schedule 14.07.2017
comment
Hai teman-teman, saya menggunakan solusi @ slong16 dan berfungsi dengan baik. Terima kasih   -  person RazZ    schedule 17.07.2017


Jawaban (1)


Kode ini tidak masuk akal karena sebagian berhubungan dengan xml dan sebagian lagi dengan teks. Saya telah mencoba mengilustrasikannya dengan komentar di bawah, dan bagaimana Anda dapat mengatasinya.

Contoh masukan

<?xml version="1.0"?>
<mytag>IP address</mytag>

Perincian

# this line imports the file, and turns it into an XML object. so far so good.
$content = [XML](Get-Content("path\file.config"))

# this line leads to an error:
# Method invocation failed because [System.Xml.XmlDocument] does not contain a method named 'replace'
$content = $content.replace("IP address","Other IP address")

# this line will try to export the xml object (unsuccessfully)
$content | out-file "path\file.config"

Pendekatan 1 - perlakukan sebagai teks

$content = (Get-Content("path\file.config"))
$content = $content.replace("IP address","Other IP address")
$content | out-file "path\file.config"

Pendekatan 2 - perlakukan sebagai xml

$content = [XML](Get-Content("path\file.config"))
$content = $content.mytag = "Other IP Address"
$content.OuterXml | out-file "path\file.config"
person G42    schedule 14.07.2017
comment
Halo, terima kasih atas bantuan Anda tetapi saya tidak berhasil membuatnya berfungsi... Saya seorang pemula dengan PS jadi mungkin ini salah saya. Terima kasih =) - person RazZ; 17.07.2017