Ich überprüfe eine Datei nach Zeilen, in denen ein Char in einer speziellen Position fehlt. Wenn das Zeichen fehlt, füge ich es an genau diesem Ort ein. Jetzt möchte ich diese neue Zeile mit dem zusätzlichen Zeichen über die alte Zeile in die Datei schreiben. Zum Beispiel habe ich im Anschluss an die in der Datei:Powershell - Ersetzen Sie einige Zeilen
"C:\\path\test\test"
"C:\\path\test\test2\"
"C:\\path\test\test3\"
Nachdem ich mein kurzes Skript laufen, will ich es wie folgt aussehen:
"C:\path\test\test\"
"C:\path\test\test2\"
"C:\path\test\test3\"
Ich versuche zu erreichen, dass diese kleine Schleife:
$content = Get-Content C:\path\to\file.txt
foreach ($line in $content)
{
if($line[-25] -ne '\') {
$test = $line -replace '(?<!\\)(?=.{24}$)', '\' | Set-Content C:\path\to\file.txt
}
else {
continue
}
}
Dieser Code fügt mir das Zeichen an der richtigen Stelle ein. Aber am Ende ist nur Zeile eins in der Datei, statt aller drei Zeilen. Ich denke, ich bin in der Nähe, aber erst mit Powershell gestartet.
Danke, funktioniert perfekt! Für alle anderen, die ein ähnliches Problem haben, setzen Sie den 'Get-Content C: \ Pfad \ zu \ Datei.txt' in Klammern' (Get-Content C: \ Pfad \ zu \ Datei.txt) '. Andernfalls kann der Set-Content nicht auf die Datei zugreifen, da diese noch von Get-Content verwendet wird. – BallerNacken
@BallerNacken guter Punkt; Sie könnten auch in eine separate Datei schreiben, die es tun würde. – briantist