PowerShell: Bestimmte Zeilen in einer Textdatei finden und dann löschen
Guten Morgen!
Habe ein funktionierendes Skript, welches erweitert werden soll... Das funktionierende Skript durchsucht eine Textdatei und ersetzt die gefundenen Werte.
Ich möchte nun das Skript folgendermaßen erweitert:
Es soll bestimmte untereinander liegende Zeilen suchen und dann löschen. Die vier Zeilen sehen folgendermaßen aus:
try {
CreateMacro("PYTHA_INIT_1", "PYTHA_INIT");
}
catch (System.Exception e) { }
Über eine Hilfe würde ich mich sehr freuen...
Habe ein funktionierendes Skript, welches erweitert werden soll... Das funktionierende Skript durchsucht eine Textdatei und ersetzt die gefundenen Werte.
$original_file = 'C:\Users\Documents\Seite_1_1.xcs'
$destination_file = 'C:\Users\Documents\Seite_1_1+.xcs'
$ReplacedContent = Get-Content $original_file | Foreach-Object {
$_.Replace("SetApproachStrategy(true, false, -1)", "SetApproachStrategy(false, true, 2)").
Replace("SetRetractStrategy(true, false, -1, 0)", "SetRetractStrategy(false, true, 2, 0)").
Replace("SetWorkpieceSetupPosition(0.0000, 0.0000, 0.0, 0.0)","SetWorkpieceSetupPosition(5.0000, 5.0000, 0.0, 0.0)")
}
Ich möchte nun das Skript folgendermaßen erweitert:
Es soll bestimmte untereinander liegende Zeilen suchen und dann löschen. Die vier Zeilen sehen folgendermaßen aus:
try {
CreateMacro("PYTHA_INIT_1", "PYTHA_INIT");
}
catch (System.Exception e) { }
Über eine Hilfe würde ich mich sehr freuen...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 464330
Url: https://administrator.de/forum/powershell-bestimmte-zeilen-in-einer-textdatei-finden-und-dann-loeschen-464330.html
Ausgedruckt am: 18.06.2025 um 17:06 Uhr
2 Kommentare
Neuester Kommentar
Jepp, und dann macht man sich gleich eine Hashtable mit allen Ersetzungen welche sich dann leicht erweitern lässt:
Bsp:
Grüße Uwe
Bsp:
function Replace-StringsInText{
[cmdletbinding()]
param(
[parameter(mandatory=$true,ValueFromPipeline=$true)][string[]]$string,
[parameter(mandatory=$true)][ValidateNotNullOrEmpty()][hashtable]$mapping
)
process{
$mapping.GetEnumerator() | %{$string = $string -replace [regex]::Escape($_.Key),$_.Value}
return $string
}
}
$searchreplacemap = @{
'SetApproachStrategy(true, false, -1)' = 'SetApproachStrategy(false, true, 2)'
'SetRetractStrategy(true, false, -1, 0)' = 'SetRetractStrategy(false, true, 2, 0)'
'SetWorkpieceSetupPosition(0.0000, 0.0000, 0.0, 0.0)' = 'SetWorkpieceSetupPosition(5.0000, 5.0000, 0.0, 0.0)'
'try {
CreateMacro("PYTHA_INIT_1", "PYTHA_INIT");
}
catch (System.Exception e) { }' = ''
}
$original_file = 'C:\Users\Documents\Seite_1_1.xcs'
$destination_file = 'C:\Users\Documents\Seite_1_1+.xcs'
Replace-StringsInText -string (gc $original_file -raw) -mapping $searchreplacemap | sc $destination_file