theengineer
Goto Top

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

Content-Key: 151569

Url: https://administrator.de/contentid/151569

Printed on: April 16, 2024 at 15:04 o'clock

Member: creyzee
creyzee Sep 22, 2010 at 19:16:06 (UTC)
Goto Top
Hallo, probier mal folgendes:

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
Member: TheEngineer
TheEngineer Sep 23, 2010 at 06:10:32 (UTC)
Goto Top
Hallo creyzee,
erst mal vielen Dank für diese Erleuchtung.
Den Ansatz foreach in Kompination mit if hatte ich auch schon mal, leider hats bei mir nicht geklappt.

Danke noch mal

Gruß
Engineer