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...
Please also mark the comments that contributed to the solution of the article
Content-Key: 464330
Url: https://administrator.de/contentid/464330
Printed on: April 20, 2024 at 06:04 o'clock
2 Comments
Latest comment
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