Windows의 스크립트에서 HTTP를 통해 파일 다운로드


19

URL이 지정된 HTTP를 통해 파일을 다운로드하는 방법을 원합니다 (wget 작동 방식과 유사). 이 질문에 대한 답변을 보았지만 요구 사항이 두 가지 변경되었습니다.

  • Windows 7 이상에서 실행하고 싶습니다 (Windows XP에서는 작동하지만 보너스입니다).
  • 키보드를 사용하여 쉽게 입력하거나 복사 / 붙여 넣을 수있는 텍스트 여야하는 스크립트만으로 재고 기계에서이 작업을 수행 할 수 있어야합니다.
  • 짧을수록 좋습니다.

따라서 기본적으로 다운로드를 수행 할 수 있는 .cmd (배치) 스크립트, VBScript 또는 PowerShell 스크립트를 원합니다 . COM을 사용 하거나 Internet Explorer를 호출 할 수 있지만 입력없이 실행해야하며 디스플레이없이 호출 할 때 (예 : Telnet 세션 을 통해) 제대로 작동해야합니다 .




이 질문은 구체적으로 재고 시스템에서 실행될 무언가를 찾고 있기 때문에 중복되지 않습니다 (Windows 용 wget과 같은 추가 소프트웨어없이).
Jason R. Coombs

@ JasonR.Coombs 허용되는 답변은 해당 질문에 대한 답변 중 하나와 동일하므로 향후 독자는 더 이상 아무것도 얻지 못합니다.
Franklin Yu

나는 동의한다; 이 시점에서 더 일반적인 질문이이 질문보다 우선합니다.
Jason R. Coombs

답변:


16

PowerShell> = 3.0 인 경우 Invoke-WebRequest를 사용할 수 있습니다 .

Invoke-WebRequest -OutFile su.htm -Uri superuser.com

또는 골프 :

iwr -outf su.htm superuser.com

2
일반 cmd 프롬프트에서 한 powershell -command "iwr -outf su.htm superuser.com"
줄짜리

14

내가 사용하는 것이 BITS ( 프라이머 ) :

Background Intelligent Transfer Service (BITS) is a component of modern
Microsoft Windows operating systems that facilitates prioritized,
throttled, and asynchronous transfer of files between machines using
idle network bandwidth.

Windows 7부터는 BITS에 PowerShell cmdlet을 사용하는 것이 좋습니다 .

% import-module bitstransfer
% Start-BitsTransfer http://path/to/file C:\Path\for\local\file

COM을 통해 BITS를 사용할 수도 있습니다 . 여기 에서 VBScript 예제를 참조 하십시오 . 다운로드를 제어하는 ​​명령 줄 도구 인 ' bitsadmin '이 있습니다.

BITSAdmin is a command-line tool that you can use to create download or
upload jobs and monitor their progress.

Windows 7 bitsadmin.exe에서는 더 이상 사용되지 않는 도구라고합니다. 그렇지만:

% bitsadmin.exe /transfer "NAME" http://path/to/file C:\Path\for\local\file

2
bitsadmin이 더 이상 사용되지 않으며 향후 Windows 버전에 포함되지 않을 수 있습니다.
Jason R. Coombs

@ JasonR.Coombs : 링크? 참고?
akira

2
technet.microsoft.com/en-us/magazine/ff382721.aspx ... "bitadmin.exe"대신 bits-cmdlets를 사용합니다.
akira

1
고마워 내가 계속해야 할 것은 bitsadmin이 내가 그것을 실행할 때 더 이상 사용되지 않는다고 말하는 것입니다.
Jason R. Coombs

아웃 경로가 상대적으로 정규화하지되어야합니다 (모자 팁 superuser.com/questions/365755/... )
매트 윌키

7

웹 클라이언트 클래스를 사용해보십시오 . 페이지 하단에 샘플 PowerShell 스크립트가 있습니다 .

$c = new-object system.net.WebClient
$r = new-object system.io.StreamReader $c.OpenRead("http://superuser.com")
echo $r.ReadToEnd()

2
도움이됩니다. WebClient에도 컨텐츠를 파일로 직접 다운로드하는 DownloadFile 메소드가 있습니다. 감사.
Jason R. Coombs

3

다음 6 줄 (또는 마지막 4 줄)을 복사하여 텍스트 파일에 붙여 넣습니다. 그런 다음 이름을로 바꿉니다 vget.vbs.

'cscript vget.vbs >FILE.TXT
'Run this vbscript at command line. Use above syntax to download/create FILE.TXT
Set oX = CreateObject("Microsoft.XmlHTTP")
oX.Open "GET", "http://www.exampleURL.com/FILE.TXT", False
oX.Send ""
WScript.Echo oX.responseText

분명히이 스크립트에서 세 가지를 사용자 정의해야 효과가 있습니다.

  1. " http://www.exampleURL.com/FILE.TXT " 라고 표시된 부분 . 다운로드하려는 파일의 올바른 URL을 대체해야합니다.
  2. 이 스크립트를 실행하기 위해 명령 줄에서 실행할 명령입니다. 스크립트 이름이 올바른 vget.vbs경우 스크립트 이름을 지정해야 합니다.
  3. 그리고 DOS 배치 명령 행 FILE.TXT에서 출력을 지정하려는 이름 .

Dropbox 계정 에서 원시 ASCII 텍스트 파일 (보다 강력한 cmd 스크립트)을 다운로드하기 위해이 방법을 사용하려고 했기 때문에 EXE 파일 등에서 작동하는지 모르겠습니다. 또는 다른 웹 서버에서.

처음 두 개의 주석 행을 생략하면 길이는 4 행입니다. VBScript 사용 방법을 알고 있다면 이 코드를 머리에 넣고 필요할 때 명령 줄에 입력 할 수도 있습니다. 그것은 단지 다섯 개 가지 핵심 명령 구성 요소를 포함합니다 : CreateObject, .Open, .Send, WScript.Echo.responseText.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.