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-ID: 151569

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

Ausgedruckt am: 12.11.2024 um 19:11 Uhr

creyzee
creyzee 22.09.2010 um 21:16:06 Uhr
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
TheEngineer
TheEngineer 23.09.2010 um 08:10:32 Uhr
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