Следующий код должен пройти через хэш-таблицу и использовать ключи/значения для фильтрации один большой файл журнала на отдельные файлы для каждого ключа, используя значения для сравнения регулярных выражений:Недействительные данные при чтении хэш-таблицы
# get today's date, or override with user-entered date
param($workingdate=(get-date).ToString("yyMMdd"))
# set hash table for each profile
$filters = @{
"desa" = "filtering string for desa";
"unpd" = "filtering string for unpd";
"dpad" = "filtering string for dpad";
"dsd" = "filtering string for dsd"
}
Foreach ($profilename in ("desa", "unpd", "dpad", "dsd")
)
{
#filter the main log and copy the filtered sub-set into individual profile logs
Write-Host "Matching regex for $profilename is $filters[profilelname]"
Get-Content "access-$workingdate.log" | Select-string -pattern $filters[$profilename] | Set-Content "$profilefilename-$workingdate.log"
}
результат дает мне выход на экран
Matching regex for desa is System.Collections.Hashtable[desa]
Matching regex for unpd is System.Collections.Hashtable[unpd]
Matching regex for dpad is System.Collections.Hashtable[dpad]
Matching regex for dsd is System.Collections.Hashtable[dsd]
и не отфильтрованные целевые файлы.
Что я делаю неправильно ... ??