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에 기본 wget및 curl별칭 이 모두 포함 되어 있음을 알아야합니다 . 그것들은 동등합니다.

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.