it-swarm-tr.com

Windows'ta komut satırından wget veya curl gibi dosyalar nasıl indirilir

Acrobat Reader/Quicktime/MS Word/her neyse, Internet Explorer veya Firefox'u açmadan doğrudan webden bir şey nasıl indirebilirim?

Windows kullanıyorum, bu yüzden Wget 'in bir Windows versiyonu olacaktır.

324
Paolo Tedesco

Windows için Wget çalışmalı.

Wget Wiki sitesinden FAQ :

GNU Wget, en yaygın kullanılan internet protokolleri olan HTTP ve FTP kullanarak World Wide Web'den dosya almak için ücretsiz bir ağ aracıdır. Etkileşimsiz çalışır, bu nedenle oturumu kapattıktan sonra arka planda çalışmayı sağlar.

- FAQ 'nin bu bölümünde indirme linkleri öneriliyor:

Windows İkilileri

Bunun yerine Jernej Simončič'in izniyle bağlantı kullanılmıştır.

171
Tony

PowerShell kullanarak son zamanlarda keşfettiğim bir alternatif:

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

GET sorgularıyla da çalışır.

Dosyayı indirmek için kimlik bilgileri belirtmeniz gerekirse, aralarına aşağıdaki satırı ekleyin:

$client.Credentials =  Get-Credential                

Standart bir Windows kimlik bilgileri istemi açılacaktır. Girdiğiniz bilgiler dosyayı indirmek için kullanılacaktır. $ Client nesnesini kullanacağınız süre boyunca bunu yalnızca bir kez yapmanız yeterlidir.

296
Paolo Tedesco

PowerShell> = 3.0 varsa, Invoke-WebRequest komutunu kullanabilirsiniz.

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

Veya golf

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

Windows'ta bir dosyayı HTTP üzerinden indirin

76
Steven Penny

Windows'un kendi komut satırı indirme aracı var - BITSAdmin :

BITSAdmin, indirme veya yükleme işleri oluşturmak ve ilerlemelerini izlemek için kullanabileceğiniz bir komut satırı aracıdır.

EDIT: 26.01.15 - İşte bir dosyanın harici araçlar olmadan pencerelere nasıl indirilebileceği üzerine genel bir bakış

Ve tam bir bitsadmin örneği:

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

Edit : 15.05.2018 - certutil ile bir dosyası da indirmenin mümkün olduğu ortaya çıktı :

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

Certutil, varsayılan olarak XP/Win2003'te yüklü değildir, ancak daha yeni Windows sürümlerinde kullanılabilir. XP/2003 için, windows server 2003 için Admin Tool Pack'e ihtiyacınız olacak

52
npocmaka

Aşağıdaki metni wget.js olarak kaydedin ve hemen arayın

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

Bu kod:

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");
*/
30
user190042

Kullanılabilir Windows için yerel bir cURL var here . SSL desteği olan ve olmayan birçok lezzet vardır.

Cygwin ve benzeri ek bagajlara ihtiyacınız yok, sadece bir tane küçük EXE dosyası var.


Windows Powershell'in tüm modern sürümlerinde hem wget hem de curl takma adları bulunduğunu bilmek de önemlidir. Eşdeğerdirler.

wget işlevselliğini elde etmek için fazladan dosya veya indirme gerekmez:

Powershell'de Kıvrılmayı Kullanma (Sociable Geek)

Alıntı:

GitHub deposundan dosya indirene benzer bir cURL komutu yazabilirsiniz.

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

ve çalışır gibi görünecek ama aslında yaptığı şey sadece cURL'yi takma ad olarak kullanmak. Yukarıdaki örnekte, olacak olan şey, dosyanın kendisi yerine yalnızca başlıkları elde etmenizdir.

PowerShell'deki takma adlar, daha uzun komutlar için kısayollar oluşturmanıza izin verir; böylece, bunları her zaman yazmanıza gerek kalmaz.

Get-Alias ​​komutunu yazarsanız, size PowerShell'de kullanılan tüm Diğer Adların bir listesini verecektir. Görebildiğiniz gibi, curl komutu sadece Invoke-WebRequest komutunu çağırır. Bunlar benzer ancak aynı değil, bu yüzden yukarıdaki istek bizim için çalışmıyor.

 enter image description here

Bunun PowerShell'de düzgün çalışmasını sağlamak için, burada gösterilen değişkenleri ve -OutFile argümanını kullanmak en kolay yoldur:

 enter image description here

(dosya adı “ https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json ” resminde kesildi)

Bu sözdizimi azuredeploy.json hedef dosyasının tam içeriğini yerel dosyaya indirir newfile.json


Birincil avantaj, Powershell’in kendi içinde yerleşik olması, bu kodun doğrudan karşıdan yüklenmeyecek şekilde doğrudan çalışması veya herhangi bir modern Windows sürümünde çalışması için başka herhangi bir ek dosya oluşturma işleminin yapılması.

20
Gaurav Kumar

Yukarıda açıklanan PowerShell yöntemini çağıran hızlı bir myGet.bat dosyası hazırladım.

@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

Alan adının URL'sini ayrıştırma alanındanile bazı kodlar ödünç aldım.

19
MartinC

Aynı şeyi arıyordum ve yukarıdaki paketlerin hiçbirini kurma ayrıcalığım olmadığından, küçük bir geçici çözüm için gittim (30 + dosya indirmek için):

  • Bir toplu iş dosyası oluşturdum
  • Tüm dosyalar listelenmiştir
  • Her satırın başına firefox.exe koyun.
  • Firefox dizinine Program Files içinde gitti
  • Koştum.
8
Jesse P Francis

Cygwin Wget'a sahiptir (ve daha birçok yardımcı programa sahiptir).

3
Rich Homolka

PowerShell bir seçenekse, tercih edilen yol budur, çünkü siz (potansiyel olarak) fazladan bir şey yüklemek zorunda kalmazsınız:

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

Bunu başaramamak, Wget for Windows, diğerlerinin de belirttiği gibi kesinlikle en iyi ikinci seçenek. Başka bir cevapta da belirtildiği gibi hepsini kendi başına indir Wget gibi görünebilir veya Cygwin veya MSys 'in bir parçası olarak yakalayabilirsiniz.

Herhangi bir nedenden dolayı, kendinizi PowerShell ve olmayan bir makineyi kullanarak çalışan bir web tarayıcısına sıfır erişiminiz varsa (yani, Internet Explorer’ın tek tarayıcısı olan) sistem ve ayarları bozuk) ve dosyanız bir FTP sitesinde (HTTP yerine):

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

Bellek hizmet veriyorsa, Windows 98'den beri orada ve Windows 8'de hala var olduğunu doğrulayabilirim RTM (appwiz.cpl içine girip özellikleri eklemek/kaldırmak zorunda kalabilirsiniz). Bu yardımcı program, web'deki FTP sitelerine dosya yükleyip indirebilir. Her iki işlemi de otomatikleştirmek için komut dosyalarında da kullanılabilir.

Yerleşik olan bu araç geçmişte benim için gerçek bir hayat kurtarıcı oldu, özellikle de ftp.cdrom.com günlerinde - Sadece bir çevirmeli İnternet bağlantısı olan tamamen bozuk bir makineye Firefox'u bir kez bu şekilde indirdim. bağlantı (sneakernet'in maksimum paket büyüklüğü hala 1.44 MB iken ve Firefox yine de "Netscape"/me trollface ) olduğunda geri döndü.

Birkaç ipucu: bu kendi komut işlemcisi ve kendi sözdizimine sahip. "Yardım" yazmayı deneyin. Tüm FTP siteleri bir kullanıcı adı ve şifre gerektirir; ancak "adsız" kullanıcılara izin veriyorlarsa, kullanıcı adı "adsız" dır ve şifre e-posta adresinizdir (takip edilmek istemiyorsanız bir tanesini yapabilirsiniz, ancak genellikle emin olmak için bir tür mantık vardır) geçerli bir e-posta adresi).

3
BrainSlugs83

Ve http://www.httrack.com/ / siteleri yansıtma için güzel bir GUI'ye (ve ücretsiz) sahiptir. Aynı zamanda bir Linux versiyonuna sahiptir.

2
Zsolt Botykai

Ayrıca PowerShell paketinde bulunan wgetöğesini de kullanabilirsiniz. ; ^) Açmak için Windows tuşuna basın ve "powershell" veya Windows-R tuşlarına basın ve "powershell" yazın ve return tuşuna basın.

Kurulum gerekmez.

Geleneksel wget'den ilginç bir fark (/ o linkte ): Bir dosyaya yönlendirmek için daha büyük olanı kullanamazsınız. PowerShell'deki wgetname__, Invoke-WebRequest için kolaylık sağlayan bir sarıcıdır ve bir dosyaya yazmak için sözdizimini kullanmanız gerekir.

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

https://lolbas-project.github.io üzerinde /download işlevini arayın.

Şu anda, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 ve eşdeğer Sunucu sürümleri için Bitsadmin.exe, Certutil.exe, Esentutl.exe, Expand.exe, Extrac32.exe, Findstr.exe, Hh.exe, Ieexec.exe, Makecab.exe, Replace.exe vardır.

1
noraj

WGet for Windows programını alabilirsiniz burada . Alternatif olarak, indirmek istediğiniz öğenin indirme bağlantısını sağ tıklayıp Farklı Kaydet'i seçebilirsiniz. Bu dosyayı indirecek ve atanmış uygulamada açmayacaktır.

1
BinaryMisfit

Sanırım wget 'u Chocolatey ile kurmak en kolay yol.

  1. Kur Chocolatey
  2. Komut satırından şunu yazın: choco install wget
  3. Daha sonra, * nix sistemlerinde olduğu gibi komut satırından wget öğesini kullanabilirsiniz.
0
sivabudh

Bir GUI istiyorsanız, o zaman VisualWget komutunu deneyin. Bu indirme motoru için GNU Wget dayanmaktadır.

EDIT: güncellenmiş bağlantı.

0
Wurlitzer

Bu SU cevabında belgelerinde belirtildiği gibi, aşağıdakileri Powershell'de kullanabilirsiniz:

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