Suchen und Löschen mit Powershell
Ich möchte in einer txt datei einen WErt suchen und die damit verbundene Zeile komplett löschen
Hallo in die Expertenrunde,
ich habe vor einigen Wochen mit der PS begonnen und habe schon ein Problem welches mich seit einigen Tagen beschäftigt:
Anforderung ist eine Textdatei zu durchsuchen und wenn ich einen bestimmten Eintrag gefunden habe die ganze zeile zu löschen
Hier mal mein Ansatz
clear-Host
$file = Get-ChildItem "c:\batch\ps\test.txt"
foreach ($str in $file)
{
$content = Get-Content -path $str
$content | foreach {$linie -replace 'UPS', ''} | Set-Content $str
}
write-Host "After replace `n"
$file
Meine Datei wird durchsucht und wenn ich den String "UPS" finde wird er gelöscht . Sehr gut so ich möchte aber DIE GANZE ZEILE gelöscht haben
Hat jemand eine Ahnung wo mein Fehler liegt
Danke schon mal im Voraus
Gruß
Engineer
Hallo in die Expertenrunde,
ich habe vor einigen Wochen mit der PS begonnen und habe schon ein Problem welches mich seit einigen Tagen beschäftigt:
Anforderung ist eine Textdatei zu durchsuchen und wenn ich einen bestimmten Eintrag gefunden habe die ganze zeile zu löschen
Hier mal mein Ansatz
clear-Host
$file = Get-ChildItem "c:\batch\ps\test.txt"
foreach ($str in $file)
{
$content = Get-Content -path $str
$content | foreach {$linie -replace 'UPS', ''} | Set-Content $str
}
write-Host "After replace `n"
$file
Meine Datei wird durchsucht und wenn ich den String "UPS" finde wird er gelöscht . Sehr gut so ich möchte aber DIE GANZE ZEILE gelöscht haben
Hat jemand eine Ahnung wo mein Fehler liegt
Danke schon mal im Voraus
Gruß
Engineer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 151569
Url: https://administrator.de/contentid/151569
Ausgedruckt am: 12.11.2024 um 19:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo, probier mal folgendes:
Viele Grüße vom creyzee
clear-Host
$file = Get-Content "f:\test.txt"
$str | out-file f:\test.txt # Inhalt der Datei löschen
foreach ($str in $file)
{
if ($str -like '*UPS*') {
# SubString ist nicht enthalten; die * sind bedingt erforderlich
} else {
$str | out-file f:\test.txt -append # SubString ist enthalten -> Zeile wird an die Datei angehängt
}
}
Viele Grüße vom creyzee