Mit PowerShell mehrere Sonderzeichen aus einer XML datei entfernen
Hallo meine Lieben mit Administratoren,
ich musste vor kurzem ein kleines PowerShell Script verfassen um ein bestimmtes Sonderzeichen aus XML Dateien raus zu Filtern, dies Funktioniert mit dem Gewählten Zeichen auch sehr gut.
Nun spuckt das Programm was den Fehler verursacht neuerdings aber mehr als eine Art Sonderzeichen aus und meine Modifikationsversuche schlagen leider nach dem ersten Befehl immer wieder Fehl, zusätzlich musste ich auch feststellen das einige andere Sonderzeichen wie “?“ oder “*“ auch einen Fehler auslösen.(Regex ?)
Ich wäre sehr dankbar für jeden Modifizierungsvorschlag um eines oder gar beide der Probleme zu lösen.
MFG
GeretCondit
ich musste vor kurzem ein kleines PowerShell Script verfassen um ein bestimmtes Sonderzeichen aus XML Dateien raus zu Filtern, dies Funktioniert mit dem Gewählten Zeichen auch sehr gut.
Nun spuckt das Programm was den Fehler verursacht neuerdings aber mehr als eine Art Sonderzeichen aus und meine Modifikationsversuche schlagen leider nach dem ersten Befehl immer wieder Fehl, zusätzlich musste ich auch feststellen das einige andere Sonderzeichen wie “?“ oder “*“ auch einen Fehler auslösen.(Regex ?)
Ich wäre sehr dankbar für jeden Modifizierungsvorschlag um eines oder gar beide der Probleme zu lösen.
Get-ChildItem "C:\Users\username\Desktop\Ordner" | `
Foreach-Object{
$content = Get-Content $_.FullName
$content | Foreach-Object {$_ -Replace "_", ""}| Set-Content $_.FullName
}
MFG
GeretCondit
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 280080
Url: https://administrator.de/contentid/280080
Ausgedruckt am: 24.11.2024 um 05:11 Uhr
2 Kommentare
Neuester Kommentar
Moin,
wie du schon richtig vermutet hast, wird bei -replace der erste Parameter als Regular Expression interpretiert. Dabei sind viele Sonderzeichen wenn sie denn selber in der Textdatei ersetzt werden sollen zu Escapen. Das macht man mit einem Backslash vor dem Sonderzeichen. Ein Fragezeichen und der Stern sind ja spezielle Zeichen die in Regex eine spezielle Bedeutung haben. Um gleich mehrere Zeichen zu ersetzen macht man das dann so
Das haben wir dir aber auch schon mal hier verklickert:
Power Shell Script Soll nach Suchbegriffen Zeilen aus einer Datei Filtern, aber mein Suchbegriff zeigt keine Wirkung
Dir sei mal folgendes Tutorial dringend empfohlen: Tutorial Reguläre Ausdrücke
Gruß jodel32
wie du schon richtig vermutet hast, wird bei -replace der erste Parameter als Regular Expression interpretiert. Dabei sind viele Sonderzeichen wenn sie denn selber in der Textdatei ersetzt werden sollen zu Escapen. Das macht man mit einem Backslash vor dem Sonderzeichen. Ein Fragezeichen und der Stern sind ja spezielle Zeichen die in Regex eine spezielle Bedeutung haben. Um gleich mehrere Zeichen zu ersetzen macht man das dann so
gci "C:\Users\username\Desktop\Ordner" -Filter *.xml | %{
(Get-Content $_.FullName) -Replace '[_\?\*]', '' | Set-Content $_.FullName
}
Power Shell Script Soll nach Suchbegriffen Zeilen aus einer Datei Filtern, aber mein Suchbegriff zeigt keine Wirkung
Dir sei mal folgendes Tutorial dringend empfohlen: Tutorial Reguläre Ausdrücke
Gruß jodel32