Windows의 스크립트에서 HTTP를 통해 파일 다운로드 / 붙여 넣을

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

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

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



답변

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

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

또는 골프 :

iwr -outf su.htm superuser.com

답변

내가 사용하는 것이 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

답변

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

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

답변

다음 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.


답변

다음은 외부 도구를 사용하지 않고 Windows에서 파일을 다운로드하는 방법을 재개하려는 시도입니다.

여기에는 임시 파일이 필요없는 하이브리드 배치 / JScript 스크립트가 포함 된 BITSADMIN, Microsoft.XmlHTTP 및 WinHTTP 및 jscript.net 자체 컴파일 하이브리드가 포함 된 System.Net.WebClinet가 포함됩니다.


답변