Как скачать файлы через http командную строку?

9

Мне нужно скачать файл через http из командной строки на Windows Server 2008. Я ищу что-то вроде wget , но это должен быть встроенный инструмент.

Есть ли такой инструмент?

steenhulthin
источник
Является ли PowerShell встроенным инструментом для вас?
mailq
Да, PowerShell в порядке.
Steenhulthin

Ответы:

17

Если у вас установлен PowerShell ...

(New-Object System.Net.WebClient).DownloadFile("http://icanhazip.com/","icanhazip.txt")
Kanji
источник
2
Примечание для тех, кто не знаком с этим вызовом. Первый аргумент - файл, который нужно загрузить, второй - сохранить его как локально.
Джон
3
По какой-то причине это не сработает для меня, пока я не укажу путь, чтобы сохранить его локально:(New-Object System.Net.WebClient).DownloadFile("http://download.microsoft.com/download/8/C/5/8C5EEDC7-3D72-4BB6-A55E-37F3977CD892/wpilauncher.exe","C:\wpilauncher.exe")
Крис Магнусон,
Работа над SSH является проблемой, так как powershell не запускается интерактивно внутри одного терминала. Я должен был бежать, powershell "your command with quotes escaped by a backslash"чтобы заставить это работать.
Акостадинов
0

Нет эквивалента wget, встроенного в Windows по умолчанию.

user48838
источник
0

Я предпочел бы использовать способ powershell, однако, когда вы заходите на некоторые страницы, например, с ошибочным кодом ssl (самоподписанным или другим), вам нужно сначала установить ожидания перед вызовом.

[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$wc = New-Object System.Net.WebClient

$wc.DownloadFile ( "https://thesite.com/myPage", "LocalFileName.htm" )

Это, в свою очередь, тоже потерпит неудачу, если оно будет перенаправлено много раз, например если ему нужны куки, чтобы сохранить и т. д ...

К сожалению, без написания небольшого собственного исполняемого файла, кажется, нет ничего, кроме wget, который действительно может обрабатывать все ситуации до сих пор ... хотелось бы ошибаться.

Йохан А
источник
Если вам нужны куки, вы, вероятно, нарушаете ToS, загружая их через CLI в любом случае.
Даниэль Видрик