powershell-trimmen - entfernen Sie alle Zeichen nach einem string
Was wäre der Befehl für das entfernen alles nach einer Zeichenfolge (\test.etwas).
Ich habe die Informationen in einer text-Datei, aber nach der Zeichenfolge es ist wie ein 1000 Zeilen text, die ich nicht will. wie kann ich Sie entfernen alles nach und einschließlich der Zeichenfolge.
Dies ist, was ich habe, funktioniert nicht. Ich danke Ihnen so sehr.
$file = get-item "C:\Temp\test.txt"
(Get-Content $file) | ForEach {$_.TrimEnd("\test.something\")} | Set-Content $file
InformationsquelleAutor samsux | 2015-03-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum entfernen Sie alles nach? Nur halten Sie alles bis es (ich werde zwei Zeilen für eine bessere Lesbarkeit, sondern Sie können einfach kombinieren in einem einzigen Befehl):
Auch, müssen Sie möglicherweise nicht das Schneiden, sondern Sie wurden mit TrimEnd so Hinzugefügt, in Fall, dass Sie wollen, um es später hinzufügen. )
InformationsquelleAutor JGreenwell
Mit
-replace
Hast du noch hinzufügen, dass -Raw Schalter zu Bekommen-Inhalte?
Aktualisierte Antwort.
sicher haben ------ $text = ( Get-Content "file.txt" -raw | Out-String ).Trim() $text.Substring(0,$text.IndexOf('$text = ( Get-Content "file.txt" -raw | Out-String ).Trim() $text.Substring(0,$text.IndexOf('Ordner: \Microsoft')) | Set-Content "file.txt"')) | Set-Content "file.txt"
Sie müssen schalten Sie den singleline-flag (?s), so dass die regex-übereinstimmungen Zeilenumbrüche und es ist schwieriger zu schreiben, diese mit powershell würde folgendermaßen Aussehen:
$text -replace "(?s)\\test\.something\\.*\r\n.*",""
- oder `n für newlineInformationsquelleAutor mjolinor