В прошлом посте я рассказал о командлетах *-FileTransfer и показал как включить простую закачку. Сегодня я расскажу как управлять этими закачками.
Напомню кстати, чтобы работать с командлетами FileTransfer, надо сначала выполнить команду Import-Module FileTransfer.
Итак, представим что мы хотим включит закачку, но при этом продолжать работать дальше в консоли PowerShell, не дожидаясь когда файл закачается. Для этого надо выполнить команду New-FileTransfer с ключём –Asynchronous. Он указывает командлету что не следует выводить на экран состояние закачки, а надо просто начать скачивать файл в фоне, никому не мешая. При этом командлет возвращает ссылку на объект закачки, чтобы ею было удобно управлять. Эту ссылку можно сразу поместить в переменную:
Import-Module FileTransfer $MyDownload = New-FileTransfer $url -Asynchronous
Посмотреть (и изменить) параметры закачки можно точно так же как и свойства любого объекта в PowerShell:
Как видно из скриншота, нам доступны такие свойства как приоритет, время между повторениями попыток при обрыве связи (MinimumRetryDelay), общее и скачанное количество байтов, ну и список файлов.
Если вы не поместили указатель работы в переменную, ничего страшного, все работы текущего пользователя доступны из любой оболочки PowerShell. Достаточно лишь вызвать командлет Get-FileTransfer:
Разумеется закачками можно управлять не только изменяя свойства объектов напрямую, но и вызывая соответствующие командлеты: Set-FileTransfer, Resume-FileTransfer, Suspend-FileTransfer, и т.д.
Стоит обратить внимание, что даже завершив закачку, фоновая работа переходит в состояние Transferred, но не сохраняет файл, и не удаляется, пока вы не выполните команду Complete-FileTransfer, например сохранить файлы всех завершившихся закачек можно так:
Get-FileTransfer | Complete-FileTransfer
Ну а командлет Clear-FileTransfer выполняет обратную функцию – удаляет временные файлы вместе с закачкой.
28.1.2009 в 2:29
Как ине вчера не хватало Complete-FileTransfer 🙂
28.1.2009 в 2:29
Как мне вчера не хватало Complete-FileTransfer 🙂