Я написал скрипт ниже, чтобы перебрать файлы в каталоге, а затем выполнить замену на основе хеш-таблицы (которая на самом деле будет содержать 30 ключей / значений, а не 4, как показано здесь). Это очень, очень большой каталог, и файлы несколько большие, поэтому я хочу убедиться, что это максимально оптимизировано, но я не настолько опытен в powershell. Это все или мне нужно провести рефакторинг, и если да, что мне делать? Спасибо.
Get-ChildItem 'C:\temp' -Filter *.txt |
Foreach-Object {
$lookupTable = @{
'a' = '1'
'b' = '2'
'c' = '3'
'd' = '4'
}
$file = $_
Write-Host "$file"
(Get-Content -Path $file -Raw) | ForEach-Object {
$line = $_
$lookupTable.GetEnumerator() | ForEach-Object {
if ($line -match $_.Key) {
$line = $line -replace $_.Key, $_.Value
}
}
$line
} | Set-Content -Path $file
}