Windows에서 일괄 처리를 통해 다운로드 및 업로드 속도를 찾을 수 있는 방법이 있습니까?

Windows에서 일괄 처리를 통해 다운로드 및 업로드 속도를 찾을 수 있는 방법이 있습니까?

다음 명령을 통해 다운로드 속도를 계산하는 Windows bat 스크립트가 있습니다 ping.

SETLOCAL ENABLEDELAYEDEXPANSION
set address=8.8.8.8
set packagesize=65500
set times=20
set accumulator=0

for /l %%a in (1,1,%times%) do (
    for /f %%b in ('getms ping -n 1 -l %packagesize% %address%') do (
        set /a "accumulator=!accumulator!+%%b"
    )
)

set /v "velocity=!packagesize!*!times!/!accumulator!"
echo.!velocity!kbps

에서 반환된 밀리초 값 (언어에 따라 다름) 을 분리하기 위해 getms많은 명령을 사용하는 또 다른 박쥐는 어디에 있습니까?forping

편집됨: 음, 계산된 대역폭은 실제 대역폭과 관련이 없고 ping전송 속도가 아닌 대기 시간과 관련이 있으므로 올바른 다운로드 속도와 일치하도록 해당 스크립트를 어떻게 편집할 수 있습니까? 타사 명령이 아닌 기본 명령으로 이를 수행할 수 있는 방법이 있습니까?

답변1

당신이 사용할 수있는비트소프트웨어 패키지를 다운로드하려면 유휴 네트워크 대역폭만 사용하도록 설계되었으므로 기기가 이미 무언가를 다운로드 중인 경우 다운로드 속도가 느려집니다.

그런 다음 조금 기다렸다가 다운로드 진행 상황을 모니터링할 수 있습니다. 너무 느린 경우 다운로드를 일시 중지하거나 취소할 수 있습니다. 괜찮다면 완료되도록 놔두세요.

BITS를 호출하는 가장 쉬운 방법은 PowerShell입니다. 시작하는 데 도움이 되는 몇 가지 코드는 다음과 같습니다.

$transfer = Start-BitsTransfer -Asynchronous -Source 'http://mirror.yandex.ru/ubuntu-releases/17.04/ubuntu-17.04-server-i386.iso' -Destination 'c:\Temp'
$bytesTransferred = 0
while($transfer.JobState -eq 'Connecting' -or $transfer.JobState -eq 'Transferring')
{
    $delay = 5
    Start-Sleep -Seconds $delay

    if ($transfer.JobState -eq 'Transferring')
    {
        $bytesDelta = $transfer.BytesTransferred - $bytesTransferred
        $bytesTransferred = $transfer.BytesTransferred

        # Check if speed is less than 1 MB/s
        if ($bytesDelta -lt (1MB * $delay))
        {
            Write-Warning 'Download is too slow, aborting'
            Remove-BitsTransfer $transfer
            # Also can use Suspend-BitsTransfer $transfer to pause and Resume-BitsTransfer $transfer to resume
            break
        }
    }
}
if ($transfer.JobState -eq 'Transferred')
{
    Complete-BitsTransfer $transfer
    Write-Information 'Download complete'
}
else
{
    Write-Error "Download error $($transfer.ErrorDescription)"    
}

확장명을 사용하여 스크립트를 저장 ps1하고 PowerShell -ExecutionPolicy Unrestricted -File YourScript.ps1배치 파일에서 호출하는 데 사용합니다(또는 직접 호출).

관련 정보