Speedtest komut satırı üzerinden arkaplanda bizim yerimize hız testi yapacak ve kaydedecek basit bir otomasyon hazırladım.
Belirlediğimiz zaman aralığında arkaplanda otomatik çalışarak hız testi yapıyor ve aynı klasör içinde kendi oluşturduğu “speedtest_results.log” dosyasına log tutuyor.
Şimdilik sadece Windows için yaptım. İlerleyen zamanlarda Linux için ve Entware yüklü Keenetic cihazlar için de yapabilirim.
Hazır Dosya
Dilerseniz direkt bu linkten zip dosyasını indirebilir ve zip'i istediğiniz yere açabilirsiniz:
Döngü süresini belirlemek için speedtest_logger.bat
dosyasına sağ tıklayıp Düzenle’yi seçin. Açılan Not Defteri penceresinde dongu_suresi
değerini saniye cinsinden istediğiniz gibi ayarlayın. Varsayılan olarak bu değeri 1 saate denk gelecek şekilde 3600 olarak ayarladım.
Sadece tek sefer çalışmasını istiyor, döngü olmasını istemiyorsanız dongu
değerini 0 olarak ayarlayın.
Bilgisayarı her açtığınızda bu işlemin otomatik olarak başlamasını istiyorsanız speedtest_görevi.vbs
dosyasına sağ tıklayıp kısayol oluşturun. Bu kısayolu ise %appdata%\Microsoft\Windows\Start Menu\Programs\Startup
klasörüne taşıyın.
Kendisi Hazırlamak İsteyenler için
Öncelikle istediğiniz bir konumda istediğiniz isimde bir klasör oluşturun.
Ardından Speedtest CLI uygulamasını şu sayfadan indirin:
İndirdiğiniz zip dosyasının içindekileri, oluşturduğunuz klasöre atın.
Not Defteri’ni açın. Şu kodu yapıştırın:
@echo off
setlocal enabledelayedexpansion
set "dongu_suresi=3600" // Saniye cinsinden. Örneğin, 1 saat için 3600 olarak ayarlayın.
set "dongu=1" // 1 iken belirlenen aralıkta hız testi tekrarlanır, 0 iken döngü olmaz.
REM UTF-8
set OLDCP=
for /f "tokens=2 delims=:" %%A in ('chcp') do set "OLDCP=%%~A"
for /f %%A in ("%OLDCP%") do set "OLDCP=%%~A"
echo "%OLDCP%"| findstr /r "^\"[0123456789][0123456789]*\"$" 1>NUL 2>&1
if %ERRORLEVEL% NEQ 0 echo Fatal: Failed parsing code page id. & exit /b 1
chcp 65001 1>NUL
if %ERRORLEVEL% NEQ 0 echo Fatal: Failed changing code page id. & exit /b 1
:loop
if !dongu! equ 0 (
exit /b
)
echo Hız testi gerçekleştiriliyor...
rem Run the speedtest.exe command and capture its output
set "output=" // Her döngü başında output değişkenini sıfırla
for /f "delims=" %%i in ('%~dp0\speedtest.exe --progress=no 2^>^&1') do (
set "output=!output! %%i"
)
rem Geçerli tarih ve zamanı çek: "YYYY-MM-DD HH:MM:ss" format
for /f "tokens=1-3 delims= " %%a in ('echo %date% %time%') do (
set "current_date_time=%%a %%b %%c"
)
rem Create a timestamp
set "timestamp=!current_date! !current_time!"
echo !current_date_time!
echo !output!
echo.
echo ######################
rem Geçerli tarih ve zamanı, speedtest çıktısını log dosyasına ekle
echo !current_date_time! >> %~dp0\speedtest_results.log
echo !output! >> %~dp0\speedtest_results.log
echo. >> %~dp0\speedtest_results.log
echo ###################### >> %~dp0\speedtest_results.log
rem Belirtilen döngü süresi için bekle
timeout /t !dongu_suresi! /nobreak >nul
goto loop
:end
endlocal
Döngü süresini belirlemek için dongu_suresi
değerini saniye cinsinden istediğiniz gibi ayarlayın. Varsayılan olarak bu değeri 1 saate denk gelecek şekilde 3600 olarak ayarladım.
Sadece tek sefer çalışmasını istiyor, döngü olmasını istemiyorsanız dongu
değerini 0 olarak ayarlayın.
Dosyayı daha önce oluşturduğunuz klasöre speedtest_logger.bat
ismiyle kaydedin.
Yine bir Not Defteri açın ve şu kodu yapıştırın:
CreateObject("Wscript.Shell").Run "speedtest_logger.bat", 0, True
Bu dosyayı yine aynı klasöre speedtest_görevi.vbs
ismiyle kaydedin.
Bilgisayarı her açtığınızda bu işlemin otomatik olarak başlamasını istiyorsanız speedtest_görevi.vbs
dosyasına sağ tıklayıp kısayol oluşturun. Bu kısayolu ise %appdata%\Microsoft\Windows\Start Menu\Programs\Startup
klasörüne taşıyın.