-
Notifications
You must be signed in to change notification settings - Fork 19
/
get-pmm-runtimes.ps1
41 lines (35 loc) · 1.59 KB
/
get-pmm-runtimes.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$logFile = "\\nzwhs01\appdata\kometa\logs\meta.log"
# Read the log file and split it into lines
$lines = Get-Content $logFile
# Create an empty array to store the collections and their times
$collections = @()
# Loop through each line in the log file
foreach ($line in $lines) {
# Check if the line contains the word "Finished"
if ($line -match "Finished") {
# Extract the collection name
$collection = ($line -split "Finished")[1].Trim().TrimEnd(" ", "|")
# Extract the operation by taking the last word in the line
switch (($line -replace " *\|$", "").Trim().Split(" ")[-1]) {
"Collection" { $operation = "Collection" }
"Overlay" { $operation = "Overlay" }
"Playlist" { $operation = "Playlist" }
}
}
# Check if the line contains the word "Run Time"
if ($line -match "Run Time:") {
# Extract the time and remove the trailing white spaces and pipe character
$time = ($line -split "Run Time: ")[1].Trim().TrimEnd(" ", "|")
# Check if the time variable is not null
if ($time) {
# Add the collection, operation, and time to the collections array
$collections += New-Object -TypeName PSObject -Property @{
Collection = $collection
Operation = $operation
Time = [timespan]::Parse($time)
}
}
}
}
# Sort the collections by operation and return the result
$collections | Sort-Object -Property Time -Descending | Select-Object Collection, Time, Operation | Out-GridView # | Format-Table -AutoSize