it-swarm-ru.tech

Можно ли скачать с помощью командной строки Windows?

Можно ли скачивать с помощью командной строки Windows без использования каких-либо нестандартных (включая Windows) утилит?

Предпочтительной версией является Windows XP, но также интересно узнать о новых версиях.

Чтобы уточнить мой вопрос:

  • Это должен использовать HTTP
  • Файл должен быть сохранен
  • Стандартная чистая установка Windows, никаких дополнительных инструментов

В общем, так как все кричат ​​Wget, я хочу простую функциональность Wget без использования Wget.

122
Robert Massa

Вы можете написать VBScript и запустить его из командной строки

Создайте файл downloadfile.vbs и вставьте следующие строки кода:

' Set your settings
    strFileURL = "http://www.it1.net/images/it1_logo2.jpg"
    strHDLocation = "c:\logo.jpg"

' Fetch the file
    Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")

    objXMLHTTP.open "GET", strFileURL, false
    objXMLHTTP.send()

If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1 'adTypeBinary

objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0    'Set the stream position to the start

Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
Set objFSO = Nothing

objADOStream.SaveToFile strHDLocation
objADOStream.Close
Set objADOStream = Nothing
End if

Set objXMLHTTP = Nothing

Запустите его из командной строки следующим образом:

cscript.exe downloadfile.vbs 
51
Igor

Начиная с Windows 7, я считаю, что есть один единственный метод, который еще не был упомянут, это простой:

Синтаксис:

битсадмин/передача название работы        / скачать/приоритет приоритетURLлокальный\путь\файл

Пример:

bitadmin/передача mydownloadjob/загрузка/приоритет нормальный ^ 
 http://example.com/filename.Zip C:\Users \username\ Downloads\filename.Zip

(Разбит на две отдельные строки с ^ для удобства чтения (чтобы избежать прокрутки).)

Предупреждение: Как указано в комментариях, справочное сообщение bitsadmin начинается с:

BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows.
Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.

... но другой комментарий сообщил, что он работает на Windows 8.

74
timeshift

Windows 7 включает PowerShell, и с PowerShell практически ничего нельзя сделать.

Родная альтернатива wget в Windows PowerShell?

39
user15130

PowerShell (входит в состав Windows 8 и входит в состав .NET для более ранних выпусков) имеет такую ​​возможность. Команда powershell позволяет запускать произвольные команды PowerShell из командной строки или файла .bat. Таким образом, следующая строка - это то, что нужно:

powershell -command "& { (New-Object Net.WebClient).DownloadFile('http://example.com/', 'c:\somefile') }"
25
Nik

Я нашел способ сделать это, но на самом деле просто установите Wget .

Вы можете использовать Internet Explorer из командной строки (iexplore.exe), а затем ввести URL-адрес в качестве аргумента. Итак, запустите:

iexplore.exe http://blah.com/filename.Zip

Какой бы файл ни был, вам нужно указать, что он не требует подтверждения заранее. И вот, он автоматически выполнит загрузку. Так что да, это технически возможно, но добрый господин делает это по-другому.

17
DHayes

Windows Explorer (не путать с Internet Explorer) может загружать файлы через HTTP. Просто введите URL в адресную строку. Или из командной строки, например, C:\windows\Explorer.exe http://somewhere.com/filename.ext.

Вы получаете классическую Загрузка файла Подсказка. Если файл не является типом, который Windows Explorer знает, как отображать встроенный файл (.html, .jpg, .gif), в этом случае вам потребуется щелкнуть правой кнопкой мыши, чтобы сохранить его.

Я только что проверил это на моем VMware образе первичной установки Windows XP 2002 SP1, и он работает нормально.

12
Chris Noe

Вы можете использовать (в стандартной Windows Bat):

powershell -command "& { iwr http://www.it1.net/it1_logo2.jpg -OutFile logo.jpg }"

Кажется, требуется PowerShell v4 ...

(Спасибо этот комментарий и этот комментарий )

7
Anthony O.

Используйте FTP.

Из командной строки:

ftp ftp.somesite.com
user
password

и т.д. FTP включен в каждую версию Windows, которую я помню; вероятно не в 3.1, может быть, не в Windows 95 , но, конечно, все после этого.

@RM: Это будет грубо, если вы не хотите загружать какие-либо другие инструменты. Существует командная строка Wget для Windows и Wget предназначена для выполнения именно того, что вы просите.

6
Satanicpuppy

Используйте PowerShell следующим образом:

  1. Создайте файл download.ps1:

    param($url, $filename)
    $client = new-object System.Net.WebClient 
    $client.DownloadFile( $url, $filename)
    
  2. Теперь вы можете скачать такой файл:

    powershell Set-ExecutionPolicy Unrestricted
    powershell -ExecutionPolicy RemoteSigned -File "download.ps1" "http://somewhere.com/filename.ext" "d:\filename.ext"
    
4
Thomas Jespersen

Файл можно скачать с помощью метода ниже

bitadmin/перевод wcb/приоритет высокого уровня https://sustainabledevelopment.un.org/content/documents/Agenda21.pdf C:\Program Files (x86)\Dell Update\Agenda21.pdf

1
Mansur Ali

Если вы устанавливаете Telnet, я думаю, вы могли бы сделать HTTP-запрос к серверу для загрузки файла.

Вы также можете установить Cygwin и использовать wget для загрузки файла. Это очень простой способ загрузки файлов из командной строки.

1
EvilChookie

Вы можете установить приложение Linux Wget на Windows. Его можно скачать с http://gnuwin32.sourceforge.net/packages/wget.htm . Затем вы можете выполнить команду 'wget (inserturlhere)' или любую другую URL в командной строке, и она позволит вам загрузить этот URL/файл/изображение.

1
Jamie

Есть несколько способов загрузки с помощью командной строки в Windows:

  1. Вы можете использовать Cygwin .

    Примечание: включенные приложения не являются родными приложениями Linux. Вы должны пересобрать свое приложение из исходного кода, если хотите работать в Windows.

  2. Используя telnet, можно сделать запрос, но вы не увидите никакой обработки.

  3. Вы можете написать сценарии bat или VBS.

  4. Напишите свою собственную программу, которую вы можете запустить из cmd.exe.

1
Jesus

Если у вас установлен Python, вот пример, который получает get-pip.py из Интернета

python -c "import urllib; urllib.urlretrieve ('https://bootstrap.pypa.io/get-pip.py', r'C:\python27\Tools\get-pip.py')"
0
Sipherlab

В Windows по умолчанию вы не можете скачать через HTTP. Windows - это GUI-ориентированная ОС, поэтому в ней отсутствуют многие инструменты командной строки, которые вы могли бы найти в других ОС, например, wget, которая была бы главным кандидатом.

System.Net.WebClient.DownloadFile(), функция в API WiniNet, может загружать файлы, но я не уверен, насколько далеко вы попали в реальную разработку по сравнению с командным файлом.

0
Andrew Scagnelli