Die Anforderung heute war kurz und knackig: In 13000 svg-Dateien die immer gleich lautende Zeile 9, die auch so nur einmal in der Datei vorkommt, gegen neue Inhalte austauschen.
Ein Fall für „PowerShell-Boy“!
Die schnelle Lösung ist ein Siebenzeiler.
$workdir = ‚C:\temp\powershell_entwicklung\sp_tausch‘
$alt = „Inhalt alte Zeile 9“
$neu = “Inhalt neue Zeile 9″
$Collection = Get-ChildItem -Path „$workdir“ -Filter „*.svg“
foreach ($item in $collection) {
(Get-Content -Path $workdir\$item ) | Foreach-Object { $_ -replace „$alt“, „$neu“ } | Set-Content -Path $workdir\$item
}
Die geschätzte Laufzeit liegt zwischen vier und fünf Stunden auf einem aktuellen Rechner.