Проблема с PowerShell BitsTransfers с использованием асинхронного флага - PullRequest
0 голосов
/ 20 июня 2019

Я использую PowerShell 5. Я пытаюсь научиться загружать файлы в фоновом режиме, чтобы подавить индикатор выполнения с помощью BITS, но у меня возникли некоторые проблемы.

Когда я загружаю тестовый файл с асинхронным флагом, файлы загружаются, но вместо загрузки файла 10MB.zip он просто генерирует случайный файл tmp с файлом 10 МБ.Как будто он скачал файл, но не может переименовать его.

Если я уберу флаг Asynchronous, он загрузится отлично, но я получу индикатор выполнения, который я пытаюсь подавить

Вот демонстрация кода, который я использую

Import-Module BitsTransfer

Start-BitsTransfer -Source http://ipv4.download.thinkbroadband.com/10MB.zip -Назначение $ PSScriptRoot -Асинхронный

1 Ответ

0 голосов
/ 20 июня 2019

Согласно документации, при использовании асинхронной передачи необходимо завершить передачу.

$Job = Start-BitsTransfer -Source https://Server1.TrustedDomain.com/File1.zip `
       -Destination d:\temp\downloads\ -Asynchronous

while (($Job.JobState -eq "Transferring") -or ($Job.JobState -eq "Connecting")) `
       { sleep 5;} # Poll for status, sleep for 5 seconds, or perform an action.

Switch($Job.JobState)
{
    "Transferred" {Complete-BitsTransfer -BitsJob $Job}
    "Error" {$Job | Format-List } # List the errors.
    default {"Other action"} #  Perform corrective action.
}

https://docs.microsoft.com/en-us/windows/desktop/bits/using-windows-powershell-to-create-bits-transfer-jobs

...