Действительно ли возможно загрузить использование командной строки Windows?

Не используя никого нестандартного (включенный Windows) утилиты, действительно ли возможно загрузить использование командной строки Windows?

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

Далее разъяснить мой вопрос:

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

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

123
задан 06.06.2014, 20:37

7 ответов

Можно записать 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
ответ дан 07.12.2019, 07:49
  • 1
    Интересно, полагается ли это на Internet Explorer, но я предполагаю, что это было бы прекрасным ответом для, "Если единственный браузер в Windows мертв, как соединиться с Интернетом?" в superuser.com/questions/50427 / … :-) – Arjan 23.10.2009, 18:37

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

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

0
ответ дан 07.12.2019, 07:49
  • 1
    я понимаю, что это - возможное использование wget, но мои состояния вопроса без использования нестандартные окна utils. – Robert Massa 23.10.2009, 18:09

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

1
ответ дан 07.12.2019, 07:49

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

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

1
ответ дан 07.12.2019, 07:49
  • 1
    я - вполне уверенные количества 'cygwin' как нестандартная утилита ;-) – DaveParillo 23.10.2009, 18:04
  • 2
    Telnet является интересной опцией, есть ли способ передать вывод по каналу в файл, не повреждая его? И мы можем передать команду HTTP GET по каналу в telnet для выполнения запроса? – Robert Massa 23.10.2009, 18:05
  • 3
    Установка telnet? Telnet похож на ftp; это идет с окнами. Не знайте о перенаправлении вывода все же. – Satanicpuppy 23.10.2009, 18:10
  • 4
    Для XP (как в вопросе) telnet установлен по умолчанию, но я слышал, что на Vista это больше не имеет место? Но не, это не допускает загрузки файла, если все не возвращается в единственном ответе HTTP, и можно разделить заголовки и декодировать материал на командной строке также. Довольно вряд ли можно управлять этим. – Arjan 23.10.2009, 18:21
  • 5
    , Почему установка cygwin только для использования wget? Существует собственный win32 доступный двоичный файл. А-ч – innaM 23.10.2009, 18:39

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

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

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

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

17
ответ дан 07.12.2019, 07:49
  • 1
    я знаю wget, является намного лучшим путем, это - просто гипотетический вопрос ;) Ваш ответ появляется достаточно близкий, но все еще требует вмешательства пользователя (нажатие "Save" или настраивающий для не отображения этого диалогового окна) – Robert Massa 23.10.2009, 18:15
  • 2
    Как я сказал, необходимо отменить выбор опции запросить для сохранения для того типа файла. Например, загрузите zip-файл, отключите ту подсказку, и затем в будущем любые zip-файлы, к которым получают доступ из командной строки, автоматически сохранят. – DHayes 23.10.2009, 18:17
  • 3
    +1, хотя я не проверил его работы (но заключительный оператор очень верно) – Arjan 23.10.2009, 18:18

Windows 7 включает PowerShell и нет в значительной степени ничего, что Вы не можете сделать с PowerShell.

Собственная альтернатива wget в Windows PowerShell?

39
ответ дан 07.12.2019, 07:49

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

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

ftp ftp.somesite.com
user
password

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

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

6
ответ дан 07.12.2019, 07:49
  • 1
    +1 хороший ответ. ftp довольно универсален, пока сервер, Вы пытаетесь загрузить с поддержек его. – DaveParillo 23.10.2009, 18:05
  • 2
    Спасибо, извините, я не был более конкретным, я означал использовать HTTP. – Robert Massa 23.10.2009, 18:10

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

Синтаксис:

bitsadmin  /transfer job_name       /download  /priority priority   URL  local\path\file

Пример:

bitsadmin  /transfer mydownloadjob  /download  /priority normal  ^
                  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
ответ дан 07.12.2019, 07:49

Теги

Похожие вопросы