W PowerShellu zakochany jestem od kilku lat, ale dawno nie miałem okazji nic w nim robić. Dopiero niedawno, przy okazji testowania pewnych rzeczy w pracy, miałem okazję napisać prosty skrypt, dedykowany do sprawdzania (średniej) prędkości i czasu pobierania pewnego pliku z jednego z urządzeń w naszej sieci.
Skrypt jest bardzo prosty, ale pomyślałem, że wrzucenie go tutaj może być całkiem dobrym pomysłem (szczególnie, że od jakiegoś czasu nic się i tak tutaj nie dzieje). Skrypt prezentuje się następująco:
param($URL, $count) $i = 0 $total_time = 0 $total_speed = 0 While ($i -lt $count) { $Start = Get-Date Invoke-WebRequest -Uri $URL -OutFile test.jpg $TimeTaken = ((Get-Date) - $Start).TotalMilliseconds $FileSize = (Get-Item test.jpg).length / 1MB * 8 $speed = $FileSize / $TimeTaken * 1000 Write-Host Request $i took $TimeTaken ms. Speed equal to $speed Mbps -ForegroundColor Green $total_time += $TimeTaken $total_speed += $speed $i ++ Start-Sleep 1 } $Avg_t = [String]::Format("{0:0.00} ms", $total_time / $count) $Avg_s = [String]::Format("{0:0.00} Mbps", $total_speed / $count) Write-Host Average time is $Avg_t. Average speed is $Avg_s -ForegroundColor Red