Мне нужно получить общее значение передаваемых данных из нескольких файлов журнала. Значение данных отображается в столбце total
в строке байтов.
Он также соответственно ограничен g
, m
, t
или k
, чтобы показать ГБ / МБ / ТБ / КБ.
Total Copied Skipped Mismatch FAILED Extras
Bytes : 54.414 g 54.414 g 0 0 0 0
В настоящее время у меня есть этот скрипт, который может пройти через все файлы и извлечь значение между Bytes:
и g
, но мне нужно иметь возможность добавить больше запросов и в файл `foreach и объединить их все в один непротиворечивое значение.
Это то, что у меня есть в данный момент, но выводит только кб.
$pattern = "(?<=.*Bytes :.*)\w.+?(?= g.*)"
$pattern1 = "(?<=.*Bytes :.*)\w.+?(?= m.*)"
$pattern2 = "(?<=.*Bytes :.*)\w.+?(?= k.*)"
Get-ChildItem "C:\Users\logs" -Filter "BFR*" | ForEach-Object {
Get-Content "C:\Users\logs\*.log" | where-Object {$_ -match $pattern } | ForEach-Object {
[double] ($matches[0])
} | Measure-Object -Sum | Select-Object -ExpandProperty sum
} | ForEach-Object {
Get-Content "C:\Users\logs\*.log" | where-Object {$_ -match $pattern1 } | ForEach-Object {
[double] ($matches[0])
} | Measure-Object -Sum | Select-Object -ExpandProperty sum
} | ForEach-Object {
Get-Content "C:\Users\logs\*.log" | where-Object {$_ -match $pattern2 } | ForEach-Object {
[double] ($matches[0])
} | Measure-Object -Sum | Select-Object -ExpandProperty sum
}