Batch: suche nach usernameXYusername und ändere XY zu N
hi, kann ich einen Inhalt einer xml-datei per batch verändern?
User soll seinen Namen: N eingeben.
Dann soll in der xml-Datei nach <username>XY</username> gesucht werden. Alles was dazwischen steht, also in dem Fall das XY soll durch N ersetzt werden.
User soll seinen Namen: N eingeben.
Dann soll in der xml-Datei nach <username>XY</username> gesucht werden. Alles was dazwischen steht, also in dem Fall das XY soll durch N ersetzt werden.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 593357
Url: https://administrator.de/forum/batch-suche-nach-usernamexyusername-und-aendere-xy-zu-n-593357.html
Ausgedruckt am: 23.12.2024 um 03:12 Uhr
4 Kommentare
Neuester Kommentar
Nimm die Powershell, Batch ist für sowas das schlechteste Mittel der Wahl.
$file = "d:\datei.xml"
$user = Read-Host "Username eingeben"
$xml = New-Object XML
$xml.Load($file)
$node = $xml.SelectSingleNode("//username")
if ($node){
$node.innerText = $user
$xml.Save($file)
}else{
Write-Error -Message "username Knoten nicht gefunden (Namespaces?)!"
}
Zitat von @o0Julia0o:
Danke sehr. Ich dachte erst Powershell ist schlecht, da dann die System angepasst werden müssten. Powershell ist nicht ausführbar "\Neues Textdokument.ps1" kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist. Weitere Informationen finden Sie unter "about_Execution_Policies" "
Sorry, ist BlödsinnDanke sehr. Ich dachte erst Powershell ist schlecht, da dann die System angepasst werden müssten. Powershell ist nicht ausführbar "\Neues Textdokument.ps1" kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist. Weitere Informationen finden Sie unter "about_Execution_Policies" "
https://www.heise.de/tipps-tricks/Windows-Powershell-Skript-ausfuehren-4 ...
Von daher bin ich auch batch angewiesen, dachte ich. Das funktioniert einwandfrei auf allen Systemen.
Nein.Jedoch kann man ein Powershellscript auch zu einer Exe umwandeln, und dann funktioniert das.
Nö auch ohne.Verstehen tue ich es aber nicht. Wo sagst du im Skript dass der nach <username> und vor </username> den neuen Namen einfügen soll? Im Skript steht:
("//username")
Aber das kommt ja nirgends in der xml-Datei vor!?
https://www.w3schools.com/xml/xpath_syntax.asp
Wenn der Knoten gefunden wurde dann wird dessen Inhalt mit der Variablen ersetzt, ganz einfach 😉. So macht man das halt bei XML Dateien, die sollte immer über Parser bearbeitet werden wie oben gezeigt, nicht mit irgendwelchem Batch "String-Gepansche"