wget 또는 curl과 같은 Windows의 명령 줄에서 파일을 다운로드하는 방법


348

Internet Explorer 또는 Firefox에서 Acrobat Reader / Quicktime / MS Word / 무엇을 열지 않고도 웹에서 직접 다운로드 할 수 있습니까?

Windows를 사용하고 있으므로 Wget 의 Windows 버전 이 가능합니다.


파일을 마우스 오른쪽 버튼으로 클릭하고 "다른 이름으로 대상 저장"또는 "다른 이름으로 링크 저장"또는 "다른 이름으로 저장"(언어는 브라우저에 따라 다름)을 누르십시오.
BrainSlugs83

25
명령이 필요한 시점은 배치 파일을 작성하여 원하는 때에 작업으로 예약 (실행될 수 있음)하는 것입니다. 그것은 GUI가 부족한 곳입니다.
Jbm

4
MS Word로 어떻게 다운로드합니까?
Jaime Hablutzel

5
@JaimeHablutzel 왜 MS Word를 통해 무언가를 다운로드하고 싶습니까? MS Word는 터미널이 아닙니다.
Braden Best

1
@ SDsolar 또는 아래 에서이 답변을 upvote / 개선 하십시오 .
Franklin Yu

답변:


180

Windows 용 Wget 이 작동해야합니다.

로부터 를 Wget 위키 자주 묻는 질문 :

GNU Wget은 가장 널리 사용되는 두 가지 인터넷 프로토콜 인 HTTP 및 FTP를 사용하여 월드 와이드 웹에서 파일을 검색 할 수있는 무료 네트워크 유틸리티입니다. 비 대화식으로 작동하므로 로그 오프 한 후 백그라운드에서 작업 할 수 있습니다.

에서 자주 묻는 질문의이 섹션 , 다운로드 링크는 제안 :

윈도우 바이너리

Jernej Simončič의 링크가 대신 사용됩니다.


9
GUI를 선호한다면 Winwget cybershade.us/winwget 도 있습니다
Col

13
이 링크 에서 독립형 버전을 다운로드 할 수 있습니다 .
Vito Gentile

5
Jernej Simončič
Gras Double

1
@cixelsyd 대체 소스로 링크가 업데이트되었습니다.
clearkimura

1
eternallybored.org/misc/wget/는 내 시스템의 엔터프라이즈 안티 바이러스에 의해 표시됩니다. 카본 블랙 / 비트 9. 아마 가양 성. 그러나 소스 포지 하나가 실행됩니다. sslv3을 지원하지 않습니다.
TamusJRoyce

311

PowerShell을 사용하여 최근에 발견 한 대안 :

$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")

GET 쿼리와도 잘 작동합니다.

파일을 다운로드하기 위해 자격 증명을 지정해야하는 경우 사이에 다음 줄을 추가하십시오.

$client.Credentials =  Get-Credential                

표준 Windows 자격 증명 프롬프트가 나타납니다. 입력 한 자격 증명은 파일을 다운로드하는 데 사용됩니다. $ client 객체를 사용할 때마다이 작업을 한 번만 수행하면됩니다.


91
한 줄로도 가능합니다 :(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt')
schellack

16
@ 롭의 PowerShell은 ... 윈도우에 내장되어
nhinkle의

9
Vista부터는 가능합니다.
Arran

3
@ BrainSlugs83, 절대적으로 많은 사람들이 여전히 XP를 사용하고 있습니다. 단지 염두에 두어야 할 것입니다.
Arran

4
@ BrainSlugs83, 당신은 오래된 Windows 시스템에 여전히 사람들의 양을 과소 평가합니다. 나는이 문제를 이해하지 못하고 Vista에서만 위로 지적했다. 사람들은 그것을 무시하거나 "이봐, 고마워!"라고 말할 수 있지만, 당신은 ...? 문제가있는 경우 채팅을 작성하면 대화 할 수 있습니다. 담당자 (귀하와 같은)가있는 사람 은이 토론의 장소가 아님을 알아야 합니다 .
Arran

83

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

Invoke-WebRequest -OutFile index.html http://superuser.com

또는 골프

iwr -outf index.html http://superuser.com

Windows에서 HTTP를 통해 파일 다운로드


반대로 sourceforge (및 다른 사이트)의 리디렉션에서는 작동하지 않습니다 System.Net.WebClient. 그러나을 Invoke-WebRequest추가하여 작업 할 수 있습니다 -UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox.
Ela782

다운로드 진행률을 볼 수있는 옵션이 있습니까?
Franklin Yu

@FranklinYu 진행 상황이 표시됩니다 것은 파일이 충분히 큰 경우
스티븐 페니

옵션은 OUTFILE을 지정,하지만 여전히 저장하지 거기에 (같은 wget하거나 curl -O, curl --remote-name또는 curl -J?)
토마스 Gandor

60

Windows에는 자체 명령 줄 다운로드 유틸리티 ( BITSAdmin)가 있습니다 .

BITSAdmin은 다운로드 또는 업로드 작업을 생성하고 진행 상황을 모니터링하는 데 사용할 수있는 명령 줄 도구입니다.

편집 : 26.01.15는 - 여기에 파일이 외부 도구없이 창에 다운로드 할 수있는 방법을 내 개요입니다

그리고 완전한 비트 관리자 예 :

bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:\10mb.zip

편집 : 15.05.2018 - certutil을 사용 하여 파일 을 다운로드 할 수도 있습니다 .

certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip

Certutil은 XP / Win2003에 기본적으로 설치되어 있지 않지만 최신 Windows 버전에서는 사용할 수 있습니다. XP / 2003의 경우 Windows Server 2003 용 관리 도구 팩 이 필요합니다.


7
흥미 롭군 그것은 wget과 비교할 때 서투른 소프트웨어입니다.
Matt H

2
Windows XP와 함께 제공되지 않으며 다른 버전과 함께 제공되지 않을 수도 있습니다.
Ian Dunn

12
업데이트 : BITSAdmin은 더 이상 사용되지 않으며 향후 Windows 버전에서 사용 가능하지 않을 수 있습니다. BITS 서비스 용 관리 도구는 이제 BITS PowerShell cmdlet에서 제공합니다.
nulldev07

2
@MattH : 처음부터 wget 될 것이기 때문에? -en.wikipedia.org/wiki/Background_Intelligent_Transfer_Service
peterchen을

4
가 0x80070057 - 파일을 추가 할 수 없습니다
토마스 Zato

32

다음 텍스트를 그대로 저장하고 wget.js전화하십시오.

cscript /nologo wget.js http://example.com

이것은 코드입니다.

var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET", WScript.Arguments(0), /*async=*/false);
WinHttpReq.Send();
WScript.Echo(WinHttpReq.ResponseText);

/* To save a binary file use this code instead of previous line
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();
BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile("out.bin");
*/

이 스크립트의 언어는 무엇입니까? 현재 작업에 유용합니다. 더 많은 참조 문서를 찾고 싶습니다. vb
G-

1
단일 파일에 유용합니다. 재귀 다운로드 및 https를 향상시켜야합니다.
opticyclic

4
@지-. 나는 파티에 늦었지만 JavaScript입니다.
prooffreader

database.clamav.net/daily.cvd 에 대해 시도했지만 44MB의 88kB 만 다운로드했습니다. (
kokbira

22

여기에는 Windows 용 기본 cURL이 있습니다 . SSL 지원 유무에 관계없이 많은 특징이 있습니다.

Cygwin 등 의 추가 수하물이 필요 없으며 하나의 작은 EXE 파일 만 있으면됩니다.


또한 모든 최신 버전의 Windows Powershell에 기본 wgetcurl별칭 이 모두 포함 되어 있음을 알아야합니다 . 그것들은 동등합니다.

wget기능 을 얻기 위해 추가 파일이나 다운로드가 필요하지 않습니다 .

Powershell에서 컬 사용하기 (The Sociable Geek)

발췌 :

GitHub 리포지토리에서 파일을 다운로드하는 명령과 같은 cURL 명령을 입력 할 수 있습니다.

http://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json

작동하는 것처럼 보이지만 실제로는 cURL을 별칭으로 사용하는 것입니다. 위의 경우에 일어날 일은 파일 자체 대신 헤더를 얻는 것입니다.

PowerShell의 별칭을 사용하면 더 긴 명령에 대한 바로 가기를 만들 수 있으므로 항상 입력하지 않아도됩니다.

Get-Alias ​​명령을 입력하면 PowerShell에서 사용되는 모든 별칭 목록이 표시됩니다. 보시다시피 curl 명령은 Invoke-WebRequest 명령 만 호출합니다. 그것들은 비슷하지만 동일하지 않으므로 위의 요청이 우리에게 효과가없는 이유입니다.

여기에 이미지 설명을 입력하십시오

PowerShell에서 올바르게 작동하려면 가장 쉬운 방법은 다음 -OutFile과 같이 변수와 인수를 사용하는 것입니다.

여기에 이미지 설명을 입력하십시오

(파일 이름 " https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json " 에서 잘림 )

이 구문은 대상 파일의 전체 내용을 azuredeploy.json로컬 파일로 다운로드 합니다.newfile.json


가장 큰 장점은 Powershell 자체에 내장되어 있으므로이 코드는 다운로드없이 직접 실행되거나 최신 버전의 Windows에서 작동하기 위해 다른 추가 파일 생성이 필요하다는 것입니다.


이것은 한 줄에서 직접 수행되지만 줄은 꽤 길어지고 한 눈에 즉시 읽을 수는 없습니다.
SDsolar

21

위에서 설명한 PowerShell 메서드를 호출하는 빠른 myGet.bat 파일을 만들었습니다.

@Echo OFF
SetLocal EnableDelayedExpansion
Set Var=%1
Set Var=!Var:http://=!
Set Var=!Var:/=,!
Set Var=!Var:%%20=?!
Set Var=!Var: =?!
Call :LOOP !var!
Echo.Downloading: %1 to %~p0!FN!
powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('%1','%~p0!FN!')
GoTo :EOF
:LOOP
If "%1"=="" GoTo :EOF
Set FN=%1
Set FN=!FN:?= !
Shift
GoTo :LOOP

파일 이름이 space 인 Parsing URL 에서 코드를 빌 렸습니다 .


1
왜 downvote? 이것은 나에게 괜찮아 보이고 질문에 대한 직접적인 반응입니다. 예, URL에서 앰퍼샌드 (&)를 이스케이프 처리하는 것처럼 번거롭고 개선 기능을 사용할 수 있지만 그대로 작동합니다.
matt wilkie 5

그냥 PowerShell 스크립트를 작성하는 것이 쉽지 않을까요 ???
SamB

1
powershell.exe -Command "Invoke-WebRequest -OutFile ./file-name https://location/file-name"<-스크립트 파일 하드 코딩 위치 및 파일 이름에서 간단한 한 줄 파워 쉘 사용.
제임스 이비

8

나는 똑같은 것을 찾고 있었고 위의 패키지를 설치할 권한이 없었기 때문에 작은 해결책 (30 + 파일 다운로드)을 갔다.

  • 배치 파일을 만들었습니다
  • 모든 파일을 나열 함
  • 넣어 firefox.exe각 라인의 시작 부분에
  • 에 파이어 폭스 디렉토리에 갔다 Program Files
  • Ran 어

4

PowerShell 이 옵션 인 경우 기본적 으로 추가 경로를 설치할 필요가 없으므로 기본 경로입니다.

(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt', 'C:\tmp\file.tx??t')

다른 사람들이 지적했듯이 Windows 용 Wget은 확실히 두 번째 최고의 옵션입니다. 다른 답변에 게시 된 것처럼 Wget을 모두 다운로드 하거나 Cygwin 또는 MSys 의 일부로 가져올 수있는 것처럼 보입니다 .

어떤 이유로, 당신은 자신이 PowerShell을하지 않는 기계를 사용, 시간 워프에 갇혀 찾을 경우 당신이 작동하는 웹 브라우저 (즉 제로 액세스 할 수 있습니다, Internet Explorer는 시스템에있는 유일한 브라우저이며, 해당 설정 파일이 손상되었으므로 파일이 FTP 사이트 (HTTP가 아닌)에 있습니다.

start->run "FTP", press "OK".

메모리가 제공되면 Windows 98부터 메모리에 있었고 Windows 8 RTM에 여전히 있음을 확인할 수 있습니다 (메모리 appwiz.cpl를 가져 와서 기능을 추가 / 제거 해야 할 수도 있음 ). 이 유틸리티는 웹의 FTP 사이트에서 파일을 다운로드하거나 업로드 할 수 있습니다. 스크립트에서 사용하여 두 작업을 자동화 할 수도 있습니다.

내장 된이 도구는 과거, 특히 ftp.cdrom.com 시절에 실제로는 생명의 은인이었습니다. 전화 접속 인터넷 만있는 완전히 손상된 컴퓨터에서 Firefox를 한 번만 다운로드했습니다. 연결 (sneakernet의 최대 패킷 크기가 여전히 1.44MB이고 Firefox가 여전히 "Netscape" / me does trollface 일 때 ).

몇 가지 팁 : 자체 명령 프로세서이며 자체 구문이 있습니다. "도움말"을 입력하십시오. 모든 FTP 사이트에는 사용자 이름과 비밀번호가 필요합니다. 그러나 "익명"사용자를 허용하는 경우 사용자 이름은 "익명"이고 암호는 전자 메일 주소입니다 (추적하고 싶지 않은 경우 구성 할 수 있지만 일반적으로이를 확인하는 논리가 있습니다) 유효한 이메일 주소).


커맨드 라인 ftp를 생각하면 +1! 그러나 파티에 합류하기 전에 wget과 powershell을 모두 언급했기 때문에 -1이 있습니다. :-/
matt wilkie 5

내가 본 다른 powershell 답변은 모든 멀티 라이너 및 / 또는 코드 냄새가났습니다. 파일을 다운로드하는 짧고 간단한 라이너입니다. -또한 모든 기반을 다루는 답변을 제공하고 싶었습니다. :-)
BrainSlugs83

1
대상 파일에 두 개의 물음표가있는 이유가 확실하지 않습니다C:\tmp\file.tx??t
Ploni



2

PowerShell 에서 wget패키지로 사용할 수도 있습니다 . ; ^) 열려면 Windows 키를 누르고 "powershell"또는 Windows-R을 입력 한 다음 "powershell"을 입력하고 return 키를 누르십시오.

설치가 필요하지 않습니다.

기존의에서 한 가지 흥미로운 차이 wget(더 링크 ) : 당신은 단순히 파일에보다 큰 파이프를 사용할 수 없습니다. wgetPowerShell에서는 편리한 래퍼 일 뿐이므로 Invoke-WebRequest구문을 사용하여 파일에 기록해야합니다.

wget https://superuser.com/questions/25538 -OutFile rubySlippers.html

1
-OutFile일을했다!
Dimitry K

1

당신은 Windows 용 wget을 얻을 수 있습니다 여기에 . 또는 다운로드하려는 항목의 다운로드 링크를 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 저장을 선택할 수 있습니다. 그러면 파일이 다운로드되고 할당 된 응용 프로그램에서 열리지 않습니다.


1

wgetChocolatey 를 통한 설치 가 가장 쉬운 방법 이라고 생각 합니다.

  1. Chocolatey 설치
  2. 명령 행에서 다음을 입력하십시오. choco install wget
  3. 그런 다음 wget* nix 시스템과 같은 명령 줄에서 사용할 수 있습니다 .

1

https://lolbas-project.github.io 에서 /download기능을 검색 하십시오 .

지금 거기에 Bitsadmin.exe, Certutil.exe, Esentutl.exe, Expand.exe, Extrac32.exe, Findstr.exe, Hh.exe, Ieexec.exe, Makecab.exe, Replace.exe윈도우 비스타, 윈도우 7, 윈도우 8, 윈도우 8.1, 윈도우 (10)와 해당 서버 버전.


0

GUI를 원한다면 실제로 깨끗하고 기능이 가득한 VisualWget 을 사용해보십시오 . 다운로드 엔진은 GNU Wget을 기반으로합니다.

편집 : 업데이트 된 링크.


1
여기에 업데이트 된 링크입니다 : sites.google.com/site/visualwget/...는 합니다 (다운로드 페이지의 맨 아래에있는 오른쪽에있는 작은 화살표를 사용)
리드 헤

0

SU answer에 설명 된대로 Powershell에서 다음을 사용할 수 있습니다.

Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext

-1

gnuwin32 대신 사용할 수있다 unxutils wget과를 포함한다.


unxutils로 관리 할 수 ​​있지만 오래되었지만 wget의 이전 버전을 사용합니다. gnuwin32는 사용하는 것입니다. 설치하기가 쉽지 않고 물건을 찾기가 쉽지는 않지만 unxutils 이상이 있습니다.
barlop

-3

당신이 필요한 경우 시각적 Windows 용 포스트, 여기에 하나입니다.
데이터 나 파일을 게시 할 수 있습니다.

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