सवाल विंडोज़ में कमांड लाइन से फ़ाइलों को कैसे डाउनलोड करें जैसे wget या curl


मैं इंटरनेट एक्सप्लोरर या फ़ायरफ़ॉक्स खोलने के बिना सीधे वेब से कुछ कैसे डाउनलोड कर सकता हूं एक्रोबैट रीडर / क्विकटाइम / एमएस वर्ड / जो भी हो?

मैं विंडोज का उपयोग कर रहा हूं, इसलिए विंडोज संस्करण wget करेंगे।


295


मूल


बस फ़ाइल पर राइट क्लिक करें और "लक्ष्य के रूप में सहेजें" या "लिंक एज़ सहेजें" या "सेव एज़" मारना (भाषा आपके ब्राउज़र के आधार पर भिन्न होती है) पर काम करेगी। - BrainSlugs83
कमांड रखने का बिंदु बैच फ़ाइल लिखने और इसे चलाने के लिए सक्षम हो सकता है (शायद एक कार्य के रूप में निर्धारित) किसी भी समय आप चाहते हैं। यही वह जगह है जहां जीयूआई कम हो जाता है। - Jbm
आप एमएस वर्ड के साथ कैसे डाउनलोड करते हैं? - Jaime Hablutzel
@JimeHablutzel आप कभी भी एमएस वर्ड के माध्यम से कुछ डाउनलोड क्यों करना चाहते हैं? एमएस वर्ड टर्मिनल नहीं है। - Braden Best
@ एसडसोलर या बस ऊपर / सुधार यह जवाब नीचे। - Franklin Yu


जवाब:


विंडोज के लिए Wget कार्य करना चाहिए।

वहाँ से Wget विकी अकसर किये गए सवाल:

जीएनयू वॉजेट दुनिया से फाइलों को पुनः प्राप्त करने के लिए एक मुफ्त नेटवर्क उपयोगिता है   HTTP और एफ़टीपी का उपयोग करते हुए वाइड वेब, दो सबसे व्यापक रूप से इस्तेमाल इंटरनेट   प्रोटोकॉल। यह गैर-संवादात्मक रूप से काम करता है, इस प्रकार काम को सक्षम बनाता है   लॉग ऑफ करने के बाद पृष्ठभूमि।

से एफएक्यू के इस खंडडाउनलोड लिंक सुझाव दिए गए हैं:

विंडोज़ बिनरीज़

इसके बजाय जेर्नजे Simončič की सौजन्य से लिंक का उपयोग किया जाता है।


161



Winwget भी है cybershade.us/winwget यदि आप एक गुई पसंद करते हैं - Col
स्टैंडअलोन संस्करण से डाउनलोड करने योग्य है यह लिंक। - Vito Gentile
हाल ही में, यहां तक ​​कि अद्यतित (आज के रूप में) विंडोज बनाता है, जेर्नज Simončič द्वारा प्रदान की जाती है - Gras Double
@cixelsyd वैकल्पिक स्रोत के लिए अद्यतन लिंक। - clearkimura
eternallybored.org/misc/wget/ को मेरे सिस्टम पर एंटरप्राइज़ एंटीवायरस द्वारा ध्वजांकित किया गया है। कार्बन ब्लैक / बिट 9. शायद झूठी सकारात्मक। लेकिन स्रोत रन एक रन। एसएसएलवी 3 का समर्थन नहीं करता है। - TamusJRoyce


PowerShell का उपयोग करके हाल ही में एक विकल्प मैंने खोजा:

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

यह जीईटी प्रश्नों के साथ-साथ काम करता है।

यदि आपको फ़ाइल डाउनलोड करने के लिए प्रमाण-पत्र निर्दिष्ट करने की आवश्यकता है, तो निम्न पंक्ति को बीच में जोड़ें:

$client.Credentials =  Get-Credential                

एक मानक विंडोज क्रेडेंशियल्स प्रॉम्प्ट पॉप अप होगा। आपके द्वारा दर्ज किए गए प्रमाण-पत्र का उपयोग फ़ाइल को डाउनलोड करने के लिए किया जाएगा। आपको केवल $ क्लाइंट ऑब्जेक्ट का उपयोग करने के लिए केवल एक बार ऐसा करने की आवश्यकता है।


279



आप इसे एक पंक्ति में भी कर सकते हैं: (new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt') - schellack
@ रोब पावरहेल विंडोज में बनाया गया है ... - nhinkle♦
Vista से, हाँ। - Arran
@ BrainSlugs83, बिल्कुल, लेकिन कई, अनेक, लोग अभी भी एक्सपी का उपयोग कर रहे हैं। यह केवल ध्यान में रखना कुछ है। - Arran
@ BrainSlugs83, आप अभी भी पुराने विंडोज सिस्टम पर लोगों की मात्रा को कम से कम समझते हैं। मुझे इस मुद्दे को समझ में नहीं आया, मैंने बताया कि यह केवल Vista पर है। लोग इसे अनदेखा करना चुन सकते हैं, या कह सकते हैं "अरे धन्यवाद!", लेकिन आप ....? यदि आपको कोई समस्या है, तो चैट बनाएं और हम बात कर सकते हैं। प्रतिनिधि (जैसे आप) के साथ किसी को पता होना चाहिए यहाँ इस चर्चा के लिए जगह नहीं है। - Arran


यदि आपके पास PowerShell> = 3.0 है, तो आप इसका उपयोग कर सकते हैं आह्वान-WebRequest

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

या गोल्फ किया

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

विंडोज़ में HTTP के माध्यम से एक फ़ाइल डाउनलोड करें


65



यह Sourceforge (और संभवतः अन्य साइटों) पर रीडायरेक्ट के साथ काम नहीं करता है, के विपरीत System.Net.WebClient। हालांकि आप कर सकते हैं Invoke-WebRequest जोड़कर काम करते हैं -UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox। - Ela782
यह सही जवाब है, @ सेड्रिकबेलिन सही है। प्रश्न और स्वीकृत उत्तर बहुत पुराना है। - Factor Mystic
इसे cmd टर्मिनल से चलाने के लिए: powershell -command "& {&'iwr' index.html http://superuser.com}" - dario_ramos
क्या डाउनलोड की प्रगति देखने का कोई विकल्प है? - Franklin Yu
@FranklinYu प्रगति दिखाएगी कि फ़ाइल काफी बड़ी है या नहीं - Steven Penny


विंडोज़ की अपनी कमांड लाइन डाउनलोड यूटिलिटी है - BITSAdmin:

BITSAdmin एक कमांड लाइन उपकरण है जिसे आप डाउनलोड बनाने के लिए उपयोग कर सकते हैं   या नौकरियां अपलोड करें और उनकी प्रगति की निगरानी करें।

संपादित करें: 26.01.15 - बाहरी उपकरणों के बिना विंडोज़ पर फ़ाइल को डाउनलोड करने के तरीके के बारे में मेरा अवलोकन यहां दिया गया है 

और एक पूर्ण बिट्सडमिन उदाहरण:

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

संपादित करें : 2018/05/15 - यह पता चला कि एक डाउनलोड करना संभव है certutil के साथ फ़ाइल भी:

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

Certutil XP / Win2003 पर डिफ़ॉल्ट रूप से स्थापित नहीं है लेकिन नए विंडोज संस्करणों पर avaialble है। XP / 2003 के लिए आपको आवश्यकता होगी विंडोज सर्वर 2003 के लिए व्यवस्थापक उपकरण पैक


42



दिलचस्प। यह wget की तुलना में सॉफ्टवेयर का एक बेकार टुकड़ा है। - Matt H
ध्यान दें कि यह विंडोज एक्सपी के साथ नहीं भेजता है, और शायद अन्य संस्करणों के साथ भी नहीं। - Ian Dunn
अद्यतन: BITSAdmin को बहिष्कृत किया गया है और विंडोज के भविष्य के संस्करणों में उपलब्ध होने की गारंटी नहीं है। बीआईटीएस सेवा के लिए प्रशासनिक उपकरण अब बीआईटीएस पावरशेल cmdlets द्वारा प्रदान किए जाते हैं। - nulldev07
@MattH: क्योंकि यह पहली जगह में wget होने के लिए suppsoed है? - देख en.wikipedia.org/wiki/Background_Intelligent_Transfer_Service - peterchen
फ़ाइल जोड़ने में असमर्थ - 0x80070057 - Tomáš Zato


निम्न पाठ को इस रूप में सहेजें 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");
*/

28



इस स्क्रिप्ट में कौन सी भाषा है? मेरे वर्तमान कार्य के लिए उपयोगी लगती है। मैं अधिक संदर्भ दस्तावेज खोजना चाहता हूं। Vb की तरह दिखता नहीं है - G-.
एकल फाइलों के लिए उपयोगी। रिकर्सिव डाउनलोड और https के लिए बढ़ाने की आवश्यकता है। - opticyclic
@ जी। मैं पार्टी के लिए देर हो चुकी हूं, लेकिन यह जावास्क्रिप्ट है। - prooffreader
मैंने इसके लिए ऐसा करने की कोशिश की database.clamav.net/daily.cvd, लेकिन यह 44 एमबी के केवल 88 केबी डाउनलोड किया गया :( - kokbira


मैंने एक त्वरित 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

मैंने कुछ कोड उधार लिया अंतरिक्ष के साथ फ़ाइल नाम के लिए यूआरएल पार्सिंग


17



डाउनवोट क्यों? यह मेरे लिए ठीक दिखता है और सवाल का सीधा जवाब है। हां यह उलझन में है और यूआरएल में एम्पर्सेंड (&) से बचने जैसे सुधार का उपयोग कर सकता है, लेकिन यह इस तरह काम करता है। - matt wilkie


विंडोज के लिए एक देशी कर्ल उपलब्ध है यहाँ। एसएसएल समर्थन के साथ और बिना कई स्वाद उपलब्ध हैं।

आपको अतिरिक्त सामान की आवश्यकता नहीं है Cygwin और पसंद, सिर्फ एक छोटी EXE फ़ाइल।


यह जानना भी महत्वपूर्ण है कि दोनों ही हैं wget तथा curl एलियस विंडोज पावरहेल के सभी आधुनिक संस्करणों में बनाया गया। वे बराबर हैं।

प्राप्त करने के लिए कोई अतिरिक्त फाइल या डाउनलोड की आवश्यकता नहीं है wgetकार्यक्षमता:

पावरहेल में कर्ल का उपयोग करना (मिलनसार गीक)

अंश:

आप एक curl कमांड टाइप कर सकते हैं जैसे कि फ़ाइल से डाउनलोड करता है   गिटहब भंडार।

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

और ऐसा लगता है जैसे यह काम करता है लेकिन वास्तव में यह वास्तव में क्या कर रहा है   एक उपनाम के रूप में curl का उपयोग कर। उपर्युक्त उदाहरण में, क्या होगा   कि आप फ़ाइल के बजाय ही शीर्षलेख प्राप्त करेंगे।

PowerShell में उपनाम आपको लंबे आदेशों के लिए शॉर्टकट बनाने की अनुमति देता है ताकि आपको उन्हें हर समय टाइप न करना पड़े।

यदि आप Get-Alias ​​कमांड टाइप करते हैं, तो यह आपको PowerShell में उपयोग किए जाने वाले सभी उपनामों की एक सूची देगा। जैसा कि आप देख सकते हैं, कर्ल कमांड केवल Invoke-WebRequest कमांड को कॉल करता है। वे समान हैं लेकिन वही नहीं हैं, यही कारण है कि उपर्युक्त अनुरोध हमारे लिए काम नहीं करता है।

enter image description here

PowerShell में इसे ठीक से काम करने के लिए चर का उपयोग करना सबसे आसान तरीका है -OutFile यहां दिखाए गए तर्क:

enter image description here

(छवि में फ़ाइल का नाम काट दिया गया "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json")

यह वाक्यविन्यास लक्ष्य फ़ाइल की पूरी सामग्री डाउनलोड करेगा azuredeploy.json स्थानीय फाइल में newfile.json


प्राथमिक लाभ यह है कि इसे पावरहेल में ही बनाया गया है, इसलिए यह कोड सीधे डाउनलोड के बिना निष्पादित करेगा या किसी अन्य अतिरिक्त फ़ाइल निर्माण को विंडोज के किसी भी आधुनिक संस्करण पर काम करने के लिए आवश्यक है।


15



यह सीधे एक पंक्ति पर किया जाता है, लेकिन रेखा बहुत लंबी हो जाती है और एक नज़र में तुरंत पठनीय नहीं है। - SDsolar
सबसे अच्छा तरीका, धन्यवाद - Konstantin Chernov


मैं वही खोज रहा था, और चूंकि मुझे उपरोक्त किसी भी पैकेज को स्थापित करने का कोई विशेषाधिकार नहीं था, इसलिए मैं एक छोटे से कामकाज के लिए गया (30 + फाइलें डाउनलोड करने के लिए):

  • मैंने बैच फ़ाइल बनाई है
  • सभी फाइलों की सूची दी
  • डाल firefox.exe प्रत्येक पंक्ति की शुरुआत में
  • में फ़ायरफ़ॉक्स निर्देशिका के लिए गया था Program Files
  • इसे चलाओ

8





अगर शक्ति कोशिका एक विकल्प है, यह पसंदीदा मार्ग है, क्योंकि आप (संभावित रूप से) अतिरिक्त कुछ भी इंस्टॉल नहीं करना होगा:

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

यह विफल हो रहा है, विंडोज़ के लिए Wget, जैसा कि दूसरों ने इंगित किया है निश्चित रूप से दूसरा सबसे अच्छा विकल्प है। जैसा कि एक और जवाब में पोस्ट किया गया है ऐसा लगता है कि आप कर सकते हैं अपने आप को सभी wget डाउनलोड करें, या आप इसे एक हिस्से के रूप में पकड़ सकते हैं Cygwin या MSys

अगर किसी कारण से, आप पावरशेल नहीं होने वाली मशीन का उपयोग करके स्वयं को समय-समय पर फंस जाते हैं तथा आपके पास एक काम करने वाले वेब ब्राउज़र तक शून्य पहुंच है (यानी, इंटरनेट एक्सप्लोरर सिस्टम पर एकमात्र ब्राउज़र है, और इसकी सेटिंग्स भ्रष्ट हैं), और आपकी फ़ाइल एक एफ़टीपी साइट पर है (HTTP के विपरीत):

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

अगर स्मृति सेवा करता है तो यह विंडोज 98 के बाद से रहा है, और मैं पुष्टि कर सकता हूं कि यह अभी भी विंडोज 8 आरटीएम में है (आपको शायद अंदर जाना पड़ सकता है appwiz.cpl और इसे प्राप्त करने के लिए सुविधाओं को जोड़ें / हटाएं)। यह उपयोगिता वेब पर एफ़टीपी साइटों से / फ़ाइलों को डाउनलोड और अपलोड कर सकती है। इसे ऑपरेशन स्वचालित करने के लिए स्क्रिप्ट में भी इस्तेमाल किया जा सकता है।

यह टूल अतीत में मेरे लिए एक वास्तविक जीवन बचतकर्ता है, खासकर ftp.cdrom.com के दिनों में - मैंने एक बार पूरी तरह टूटी हुई मशीन पर फ़ायरफ़ॉक्स डाउनलोड किया था जिसमें केवल एक डायल-अप इंटरनेट था कनेक्शन (वापस जब स्नेकरनेट का अधिकतम पैकेट आकार 1.44 एमबी था, और फ़ायरफ़ॉक्स को अभी भी "नेटस्केप" कहा जाता था / मैं trollface करता है)।

कुछ युक्तियां: यह अपना स्वयं का कमांड प्रोसेसर है, और इसका अपना वाक्यविन्यास है। "सहायता" टाइप करने का प्रयास करें। सभी एफ़टीपी साइटों को उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होती है; लेकिन अगर वे "अज्ञात" उपयोगकर्ताओं को अनुमति देते हैं, तो उपयोगकर्ता नाम "अज्ञात" है और पासवर्ड आपका ईमेल पता है (यदि आप ट्रैक नहीं करना चाहते हैं तो आप एक बना सकते हैं, लेकिन आमतौर पर यह सुनिश्चित करने के लिए कुछ प्रकार का तर्क होता है कि यह है एक वैध ईमेल पता)।


3



कमांड लाइन ftp के बारे में सोचने के लिए +1! हालांकि पार्टी में शामिल होने से पहले दोनों wget और powerhell दोनों का उल्लेख किया गया था, तो -1 वहाँ। : - / - matt wilkie
अन्य शक्तियों के जवाब मैंने देखा कि सभी बहु-लाइनर थे और / या उनके पास कुछ कोड गंध था - यह फ़ाइल डाउनलोड करने के लिए एक छोटा और सरल एक लाइनर है। - मैं भी एक उत्तर देना चाहता था जिसमें सभी अड्डों को शामिल किया गया हो। :-) - BrainSlugs83
मुझे यकीन नहीं है कि गंतव्य फ़ाइल में आपके पास दो प्रश्न चिह्न क्यों हैं C:\tmp\file.tx??t - Ploni


Cygwin Wget (और कई और उपयोगिताओं) है।


3