Mit Powershell Version 3 & Lesen des Inhalts einer Datei, die ich dann sehen muss, wenn ich eine von mehreren Zeichenfolgen, die in der Datei enthalten sind, und ersetzen sie, wenn sie sind. Das Problem in meinem Fall ist, dass eine der Zeichenfolgen, auf die ich mich anpassen muss, eine variable Anzahl von Leerzeichen (oder gar keine Leerzeichen) enthalten kann.Powershell - passend zu einer Zeichenkette, die Leerzeichen enthalten könnte
Die Zeichenfolge, nach der ich suche, enthält doppelte Anführungszeichen, gefolgt von einem Doppelpunkt (:), Whitespace (oder keiner) und einer beliebigen Anzahl von Status (entweder alphanumerisch oder numerisch) gefolgt von einem Komma . Der Einfachheit halber verwende ich nur eine Nummer im folgenden Code.
$txt = (Get-Content $file)
$oldstr = "`"status`": 1,"
$newstr = '`"status`": 0,"
if (($txt.Contains($old1)) -or ($txt.Contains($oldstr)) -or ($txt.Contains($old2))) {
$txt.Replace($oldstr, $newstr).Replace($old1, $new1).replace($old2, $new2)| Set-Content -Path $file
}
Das Problem, das ich habe, ist die $oldstr
passend, die keine haben, ein oder mehr Leerzeichen zwischen dem Doppelpunkt und dem Statuscode, der in diesem Beispiel eine Zahl, aber es kann auch mehr verschiedenen Zahlen oder Saiten. Das $newstr
muss das Leerzeichen aus dem $oldstr
nicht replizieren. Auch im obigen Beispiel verwendet es eine der drei Bedingungen in den Contains. Die tatsächlichen Daten können keine, eine, zwei oder alle drei dieser Zeichenfolgen enthalten.
Wie können Sie die Übereinstimmung/contains und das Ersetzen der Zeichenfolgen, die Leerzeichen in ihnen haben können, tun?
gut bilden, würden Sie regex müssen, das zu tun;) aber ich kann Ihnen nicht helfen;) – 4c74356b41