क्या विंडोज कमांड लाइन का उपयोग करके डाउनलोड करना संभव है?


123

किसी भी गैर-मानक (विंडोज शामिल) उपयोगिताओं का उपयोग किए बिना, क्या विंडोज कमांड लाइन का उपयोग करना डाउनलोड करना संभव है?

पसंदीदा संस्करण विंडोज एक्सपी है, लेकिन नए संस्करणों के लिए जानना भी दिलचस्प है।

मेरे प्रश्न को और स्पष्ट करने के लिए:

  • इसे HTTP का उपयोग करना होगा
  • फ़ाइल को सहेजने की आवश्यकता है
  • मानक स्वच्छ विंडोज स्थापित, कोई अतिरिक्त उपकरण नहीं

इसलिए मूल रूप से, चूंकि हर कोई Wget चिल्ला रहा है, मुझे Wget का उपयोग किए बिना, सरल Wget कार्यक्षमता चाहिए।


6
"विंडोज में एकमात्र ब्राउज़र मर चुका है, तो इंटरनेट से कैसे जुड़ें?" at superuser.com/questions/50427/…
अर्जन

और दर्जनों में से कौन सा विंडोज एक्सपी संस्करण होगा?
अर्जन

मान लें कि यह किसी भी विंडोज़ एक्सपी SP2 संस्करण और बाद में जारी की गई सब कुछ हो सकता है।
राबर्ट मासा

@ भजन दिलचस्प सवाल है, लेकिन अभी भी कोई निश्चित जवाब नहीं है।
राबर्ट मासा

मुझे "संस्करण" के लिए पूछना चाहिए था। स्टार्टर, होम, प्रोफेशनल, मीडिया सेंटर, टैबलेट की तरह, शायद एंबेडेड (उन टूल्स के लिए अच्छा बदलाव, जो मुझे लगता है!) ... या विंडोज मीडिया प्लेयर के बिना यूरोपीय संस्करण। :-)
अर्जन

जवाबों:


51

आप एक VBScript लिख सकते हैं और इसे कमांड लाइन से चला सकते हैं

एक फ़ाइल बनाएँ downloadfile.vbsऔर कोड की निम्नलिखित पंक्तियाँ डालें:

' Set your settings
    strFileURL = "http://www.it1.net/images/it1_logo2.jpg"
    strHDLocation = "c:\logo.jpg"

' Fetch the file
    Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")

    objXMLHTTP.open "GET", strFileURL, false
    objXMLHTTP.send()

If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1 'adTypeBinary

objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0    'Set the stream position to the start

Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
Set objFSO = Nothing

objADOStream.SaveToFile strHDLocation
objADOStream.Close
Set objADOStream = Nothing
End if

Set objXMLHTTP = Nothing

इसे निम्नानुसार कमांड लाइन से चलाएं:

cscript.exe downloadfile.vbs 

1
मुझे आश्चर्य है कि अगर यह इंटरनेट एक्सप्लोरर पर निर्भर करता है, लेकिन मुझे लगता है कि यह "यदि विंडोज में एकमात्र ब्राउज़र मर चुका है, तो इंटरनेट से कैसे जुड़ें?" at superuser.com/questions/50427/… :-)
अर्जन

अगर cscript.exe की अनुमति दी गई है तो
hello_there_andy

मैं पुष्टि कर सकता हूं कि मैंने इस स्क्रिप्ट को विंडोज पीई 5.1 में परीक्षण किया है और इसने एक आकर्षण की तरह काम किया है। मैं ऑफ़लाइन तैनाती के लिए इसका उपयोग करने का इरादा रखता हूं, ताकि सर्वर पर संग्रहीत पाठ फ़ाइल के खिलाफ यूएसबी ड्राइव में मंच के संस्करण की जांच हो सके।
वेफरर

74

विंडोज 7 के साथ शुरू, मेरा मानना ​​है कि एक एकल विधि है जिसका उल्लेख अभी तक नहीं किया गया है जो आसान है:

वाक्य - विन्यास:

बिट्सडैमिन / ट्रांसफर जॉब_नाम        / डाउनलोड / प्राथमिकता प्राथमिकता    URL   स्थानीय \ path \ फ़ाइल

उदाहरण:

बिटसैमिन / ट्रांसफर mydownloadjob / डाउनलोड / प्राथमिकता सामान्य ^
                  http://example.com/filename.zip C: \ Users \ username \ Downloads \ filename.zip

( ^पठनीयता के लिए दो अलग लाइनों में टूट गया (स्क्रॉल करने से बचने के लिए)।

चेतावनी: जैसा कि टिप्पणियों में बताया गया है, bitsadminमदद संदेश यह कहकर शुरू होता है:

BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows.
Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.

... लेकिन एक अन्य टिप्पणी ने बताया कि यह विंडोज 8 पर काम करता है।


16
यह windows7 का हिस्सा है।
अकीरा २०'११

3
मेरी विंडो 7 पर काम नहीं किया ...
jyz

3
यह शीर्ष मतदान का जवाब होना चाहिए था। बिटसैडमिन को विंडोज पावरशेल के पक्ष में चित्रित किया गया है, हालांकि।
lenkite

3
Win7 पर काम करने की पुष्टि करें
kaiser

7
नोट: BITSAdmin पदावनत है और विंडोज के भविष्य के संस्करणों में उपलब्ध होने की गारंटी नहीं है। BITS सेवा के लिए प्रशासनिक उपकरण अब BITS PowerShell cmdlets द्वारा प्रदान किए जाते हैं।
उज्जवल सिंह

39

विंडोज 7 में पॉवरशेल शामिल है और बहुत कुछ ऐसा नहीं है जो आप पॉवरशेल के साथ नहीं कर सकते हैं।

Windows PowerShell में wget करने का मूल विकल्प?


16
(नई-वस्तु Net.WebClient) .DownloadFile ( 'someurl', 'somepath')
जेसन Stangroome

3
Powershell के लिए है Powerrangers ! कितना कूल है और क्यों बिल्ली मैं इस बारे में पता नहीं था? बायबाय cmd
कैसर

16
cmd.exe से powershell -command "& { iwr http://www.it1.net/it1_logo2.jpg -OutFile logo.jpg }":। रन प्रॉम्प्ट से भी काम करता है
जानुस ट्रॉल्सन

1
हाँ, कुछ भी नहीं है जो आप बिना शक्तियाँ के नहीं कर सकते। यह एक वास्तविक ट्यूरिंग टारपिट है :)
jcarpenter2

@JanusTroelsen ने PowerShell के मेरे संस्करण का जवाब दिया "शब्द 'iwr' को एक cmdlet के नाम के रूप में मान्यता प्राप्त नहीं है, ..." लेकिन कुछ जांच के बाद यह समान काम किया:powershell -command "$clnt = new-object System.Net.WebClient; $clnt.DownloadFile(\"https://host/name\", \"outpufilename\")"
rogerdpack

25

PowerShell (विंडोज 8 के साथ शामिल है और पहले रिलीज के लिए .NET के साथ शामिल है) में यह क्षमता है। powershellआदेश आदेश पंक्ति या एक से मनमाना PowerShell आदेशों चल अनुमति देता है .batफ़ाइल। इस प्रकार, निम्न पंक्ति वह है जो चाहता है:

powershell -command "& { (New-Object Net.WebClient).DownloadFile('http://example.com/', 'c:\somefile') }"

2
यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण मांगने या उसका स्पष्टीकरण देने के लिए, उनकी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपने स्वयं के पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त प्रतिष्ठा होने पर आप किसी भी पोस्ट पर टिप्पणी कर पाएंगे ।
harrymc

3
@harrymc यकीन है कि यह एक जवाब है। यह एक फ़ाइल डाउनलोड करता है। आपको और क्या चाहिए?
Janus Troelsen

1
(1) कुछ पाठ यह समझाने के लिए कि यह एक-लाइनर क्या करता है, (2) सत्यापित करें कि आपका उत्तर पिछले उत्तर के लिए एक वैकल्पिक सूत्रीकरण नहीं है, यदि ऐसा है, तो इसे उस उत्तर पर टिप्पणी के रूप में व्यक्त किया जाना चाहिए।
हरिके

कार्य करने के लिए Windows और PowerShell के किस संस्करण की आवश्यकता है?
पीटर मोर्टेंसन

2
यह Windows Server 2012 FYI करें में काम नहीं करता है, यह एक MethodInvocationException फेंकता है
knocte

17

मुझे इसे करने का एक तरीका मिला, लेकिन वास्तव में, बस Wget स्थापित करें ।

आप एक कमांड लाइन (iexplore.exe) से इंटरनेट एक्सप्लोरर का उपयोग कर सकते हैं और फिर एक तर्क के रूप में एक URL दर्ज कर सकते हैं। तो, भागो:

iexplore.exe http://blah.com/filename.zip

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


मुझे पता है कि वॉग बहुत बेहतर तरीका है, यह सिर्फ एक काल्पनिक सवाल है;) आपका जवाब बहुत करीब आता है, लेकिन फिर भी उपयोगकर्ता के हस्तक्षेप की आवश्यकता है ("सेव" पर क्लिक करें, या इस डायलॉग को प्रदर्शित नहीं करने के लिए कॉन्फ़िगर करना)
रॉबर्ट मस्सा

3
जैसा कि मैंने कहा, आपको उस फ़ाइल प्रकार को सहेजने के लिए संकेत देने का विकल्प रद्द करना होगा। उदाहरण के लिए, एक जिप फाइल डाउनलोड करें, उस प्रॉम्प्ट को डिसेबल करें और फिर भविष्य में कमांड लाइन से एक्सेस की गई कोई भी जिप फाइल अपने आप सेव हो जाएगी।
DHayes

1
+1, हालाँकि मैंने पुष्टि नहीं की है कि यह काम करता है (लेकिन अंतिम कथन बहुत सही है)
अर्जन

1
+1 के लिए "प्रिय स्वामी इस तरह से मत करो" ... :)
quixote

12

विंडोज एक्सप्लोरर (इंटरनेट एक्सप्लोरर के साथ भ्रमित नहीं होना) HTTP के माध्यम से फाइलें डाउनलोड कर सकता है। बस एड्रेस बार में URL दर्ज करें। या कमांड लाइन, उदाहरण के लिए से, C:\windows\explorer.exe http://somewhere.com/filename.ext

आपको क्लासिक फ़ाइल डाउनलोड प्रॉम्प्ट मिलती है । जब तक कि फ़ाइल एक प्रकार नहीं है जिसे विंडोज एक्सप्लोरर जानता है कि इनलाइन, (.html, .jpg, .gif) कैसे प्रदर्शित किया जाता है, तो उस स्थिति में आपको इसे बचाने के लिए राइट-क्लिक करना होगा।

मैं सिर्फ Windows XP 2002 SP1 की एक कुंवारी स्थापित की मेरी VMware छवि पर यह परीक्षण किया है , और यह ठीक काम करता है।


4
इसके लिए उपयोगकर्ता सहभागिता की आवश्यकता है। शायद नहीं, जो ज्यादातर लोग कमांड प्रॉम्प्ट से एक फ़ाइल डाउनलोड करना चाहते हैं
किप

आजकल, यह आपके डिफ़ॉल्ट-ब्राउज़र पर निर्भर करता है। मेरा क्रोम है, और यह एक ज्ञात स्थान पर ऑटो-डाउनलोड करता है, इसलिए मैं इस समाधान को अपनी आवश्यकताओं के लिए पर्याप्त मानता हूं। धन्यवाद!
kayleeFrye_onDeck

7

आप (मानक विंडोज बैट में) का उपयोग कर सकते हैं:

powershell -command "& { iwr http://www.it1.net/it1_logo2.jpg -OutFile logo.jpg }"

यह PowerShell v4 की आवश्यकता लगती है ...

( उस टिप्पणी और इस एक के लिए धन्यवाद )


6

FTP का उपयोग करें।

कमांड लाइन से:

ftp ftp.somesite.com
user
password

आदि एफ़टीपी हर विंडोज संस्करण में शामिल है जिसे मैं याद रख सकता हूं; शायद 3.1 में नहीं, शायद विंडोज 95 में नहीं , लेकिन निश्चित रूप से उसके बाद सब कुछ।

@ आरएम: यदि आप कोई अन्य टूल डाउनलोड नहीं करना चाहते हैं तो यह रफ होने वाला है। विंडोज के लिए एक कमांड लाइन Wget मौजूद है और Wget को वही बनाया जाता है जो आप पूछ रहे हैं।


+1 अच्छा जवाब। ftp बहुत सार्वभौमिक है, जब तक आप जिस सर्वर से डाउनलोड करने का प्रयास कर रहे हैं, वह इसका समर्थन करता है।
डेवपैरिलो

धन्यवाद, खेद है कि मैं अधिक विशिष्ट नहीं था, मेरा मतलब था HTTP का उपयोग करना।
रॉबर्ट मास

1
यह अधिकांश FTP सर्वरों के साथ काम नहीं करेगा क्योंकि इस Windows ftp क्लाइंट द्वारा नैटिव मोड समर्थित नहीं है (NATs inbetween पैसिव मोड की आवश्यकता है)।
पीटर मोर्टेंसन

@PeterMortensen यह भी इस सवाल का दूर से जवाब नहीं देता है क्योंकि उन्होंने इसे संपादित करने के लिए निर्दिष्ट किया था कि वह wget कार्यक्षमता की तलाश में था। लेकिन ऐसा मत करो कि आप 7 साल पुराने गलत उत्तर को फिर से पुनर्जीवित करने से रोकें, केवल कुछ पांडित्य जोड़ने के लिए।
शैतानिकपुपी

4

इस तरह से PowerShell का उपयोग करें:

  1. एक Download.ps1 फ़ाइल बनाएँ:

    param($url, $filename)
    $client = new-object System.Net.WebClient 
    $client.DownloadFile( $url, $filename)
    
  2. अब आप इस तरह से एक फाइल डाउनलोड कर सकते हैं:

    powershell Set-ExecutionPolicy Unrestricted
    powershell -ExecutionPolicy RemoteSigned -File "download.ps1" "http://somewhere.com/filename.ext" "d:\filename.ext"
    

यह काम करता है, यहां तक ​​कि विंडोज एक्सपी 64-बिट, पावरशेल 2.0 पर भी।
पीटर मोर्टेंसन

1

यदि आप टेलनेट स्थापित करते हैं, तो मुझे लगता है कि आप फ़ाइल डाउनलोड करने के लिए एक सर्वर से HTTP अनुरोध कर सकते हैं।

आप Cygwin को भी इंस्टॉल कर सकते हैं , और एक फाइल को डाउनलोड करने के लिए wget का भी उपयोग कर सकते हैं । कमांड लाइन से फाइल डाउनलोड करने का यह एक बहुत ही आसान तरीका है।


2
मुझे पूरा यकीन है कि 'साइबरविन' एक गैर-मानक उपयोगिता के रूप में मायने रखता है ;-)
डेवपरिलो

टेलनेट एक दिलचस्प विकल्प है, क्या आउटपुट को किसी फ़ाइल को बिना दूषित किए पाइप करने का कोई तरीका है? और क्या हम अनुरोध प्राप्त करने के लिए HTTP GET कमांड को टेलनेट में पाइप कर सकते हैं?
रॉबर्ट मास

टेलनेट स्थापित करें? टेलनेट ftp की तरह है; यह विंडोज़ के साथ आता है। हालांकि आउटपुट को रीडायरेक्ट करने के बारे में नहीं जानते।
शैतानिकप्यूपी

XP के लिए (सवाल के रूप में) डिफ़ॉल्ट रूप से टेलनेट स्थापित है, लेकिन मैंने सुना है कि विस्टा पर अब ऐसा नहीं है? लेकिन नहीं, यह फ़ाइल डाउनलोड के लिए अनुमति नहीं देता है, जब तक कि सभी को एक HTTP प्रतिक्रिया में वापस नहीं किया जाता है, और एक हेडर को छीन सकता है और कमांड लाइन पर सामान को भी डीकोड कर सकता है। काफी संभावना नहीं है कि एक को नियंत्रित कर सकते हैं।
अर्जन

1
सिर्फ wget का उपयोग करने के लिए cygwin को क्यों स्थापित करें? एक देशी win32 बाइनरी उपलब्ध है।
इन्नाएम

1

कुछ तरीके हैं जिन्हें आप विंडोज में कमांड लाइन का उपयोग करके डाउनलोड कर सकते हैं:

  1. आप Cygwin का उपयोग कर सकते हैं ।

    नोट: शामिल किए गए एप्लिकेशन मूल लिनक्स ऐप्स नहीं हैं। यदि आप विंडोज पर चलना चाहते हैं तो आपको अपने एप्लिकेशन को स्रोत से पुनर्निर्माण करना होगा।

  2. टेलनेट का उपयोग करके अनुरोध करना संभव है, लेकिन आपको कोई प्रसंस्करण नहीं दिखेगा।

  3. आप बैट या वीबीएस स्क्रिप्ट लिख सकते हैं।

  4. अपना खुद का प्रोग्राम लिखें जिसे आप cmd.exe से चला सकते हैं।


1

आप विंडोज पर लिनक्स एप्लिकेशन विंग को स्थापित कर सकते हैं। इसे http://gnuwin32.sourceforge.net/packages/wget.htm से डाउनलोड किया जा सकता है । फिर आप अपने कमांड प्रॉम्प्ट में कमांड 'wget (inserturlhere)' या कोई अन्य URL जारी कर सकते हैं , और यह आपको उस URL / फ़ाइल / छवि को डाउनलोड करने की अनुमति देगा।


1
अजीब तरह से यह संस्करण हमेशा संगत नहीं है। मेरे विंडोज 7 कंप्यूटर पर यह नहीं था क्योंकि पुस्तकालय गायब थे। आप अधिकांश समय बिना किसी अतिरिक्त पुस्तकालयों के उपयोग करना चाहते हैं। users.ugent.be/~bpuype/wget
sinni800


0

डिफ़ॉल्ट विंडोज में, आप HTTP के माध्यम से डाउनलोड नहीं कर सकते। विंडोज एक जीयूआई-केंद्रित ओएस है, इसलिए इसमें कई कमांडलाइन टूल का अभाव है जो आपको दूसरे ओएस में मिलेंगे, जैसे wgetकि प्रमुख उम्मीदवार।

System.Net.WebClient.DownloadFile(), WiniNetएपीआई में एक समारोह , फ़ाइलों को डाउनलोड कर सकते हैं, लेकिन मुझे यकीन नहीं है कि आप वास्तविक विकास में एक बैच फ़ाइल बनाम कितनी दूर हो रहे हैं।


मैं समझती हूं कि यह संभव है कि wget का उपयोग किया जाए, लेकिन मेरा प्रश्न बिना मानक विंडोज उपयोग के उपयोग के बिना है।
रॉबर्ट मस्सा

0

यदि आपने यहां एक उदाहरण स्थापित किया है जो वेब से get-pip.py प्राप्त करता है

python -c "import urllib; urllib.urlretrieve ('https://bootstrap.pypa.io/get-pip.py', r'C:\python27\Tools\get-pip.py')"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.