Я искал что-то подобное, и я продолжаю просматривать ответы на загрузку по FTP. Это полезная информация, но в конечном итоге ее трудно перевести. Я нашел сценарий powershell, и он работает, но мне интересно, можно ли его настроить для моих нужд. У меня нет большого опыта работы со сценариями powershell, но я пытаюсь научиться.
Потребность в этом. Мне нужно загрузить и установить ряд файлов на удаленную машину без присмотра. Файлы распространяются по электронной почте через tinyurls. В настоящее время я добавляю их в файл .txt, затем скрипт powershell читает список и загружает каждый файл.
Требования проекта и почему я обратился к powershell (а не к другим утилитам), так это то, что это очень специализированные машины. Доступны только инструменты, встроенные в Windows 7.
Трудности, с которыми я сталкиваюсь, следующие: файлы загружаются по одному. Я хотел бы получить столько загрузок одновременно, сколько позволит веб-сервер. (обычно 6)
Текущий скрипт создает имена файлов на основе tinyurl. Мне нужно фактическое имя файла с веб-сервера.
Спасибо заранее за любые предложения.
Ниже приведен сценарий, который я сейчас использую.
# Copyright (C) 2011 by David Wright ([email protected])
# All Rights Reserved.
# Redistribution and use in source and binary forms, with or without
# modification or permission, are permitted.
# Additional information available at http://www.digitalwindfire.com.
$folder = "d:\downloads\"
$userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
$web = New-Object System.Net.WebClient
$web.Headers.Add("user-agent", $userAgent)
Get-Content "d:\downloads\files.txt" |
Foreach-Object {
"Downloading " + $_
try {
$target = join-path $folder ([io.path]::getfilename($_))
$web.DownloadFile($_, $target)
} catch {
$_.Exception.Message
}
}