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


19

मुझे HTTP के माध्यम से एक फ़ाइल डाउनलोड करने का एक तरीका चाहिए, जो इसका URL है (कैसे काम करता है) के समान। मैंने इस प्रश्न के उत्तर देखे हैं , लेकिन मेरी आवश्यकताओं में दो बदलाव हैं:

  • मैं चाहूंगा कि इसे विंडोज 7 या बाद में चलाया जाए (हालांकि अगर यह विंडोज एक्सपी पर काम करता है, तो यह एक बोनस है)।
  • मुझे स्टॉक मशीन पर ऐसा करने में सक्षम होने की आवश्यकता है लेकिन स्क्रिप्ट के अलावा, जो पाठ होना चाहिए जो आसानी से कीबोर्ड पर डाला जा सकता है या कॉपी / पेस्ट किया जा सकता है।
  • कम, बेहतर।

इसलिए, अनिवार्य रूप से, मैं एक .cmd (बैच) स्क्रिप्ट, VBScript , या PowerShell स्क्रिप्ट चाहूंगा जो डाउनलोड को पूरा कर सके। यह COM का उपयोग कर सकता है या इंटरनेट एक्सप्लोरर का आह्वान कर सकता है , लेकिन इसे बिना किसी इनपुट के चलाने की आवश्यकता है, और बिना किसी डिस्प्ले के (जैसे टेलनेट सत्र के माध्यम से ) आह्वान करने पर अच्छा व्यवहार करना चाहिए ।


डोज़ v1.0 एक विन 32 कमांड लाइन टूल जैसे wget superuser.com/a/833445/384998
16-28 पर seizu


डुप्लिकेट नहीं है क्योंकि यह प्रश्न विशेष रूप से ऐसी चीज़ की तलाश में है जो स्टॉक मशीन पर चलेगी (अतिरिक्त सॉफ़्टवेयर के बिना, जैसे विंडोज के लिए wget)।
जेसन आर। कोमब्स

@ JasonR.Coombs स्वीकृत उत्तर उस प्रश्न के उत्तर में से एक के समान है, इसलिए भविष्य के पाठक को और कुछ नहीं मिलता है।
फ्रैंकलिन यू

मैं सहमत हूँ; इस बिंदु पर, अधिक सामान्य प्रश्न इस एक को अलग करता है।
जेसन आर। कोम्ब्स

जवाबों:



14

मैं बिट्स ( प्राइमर ) का उपयोग करूंगा :

Background Intelligent Transfer Service (BITS) is a component of modern
Microsoft Windows operating systems that facilitates prioritized,
throttled, and asynchronous transfer of files between machines using
idle network bandwidth.

विंडोज 7 के साथ शुरू, Microsoft BITS के लिए PowerShell cmdlets का उपयोग करने की सलाह देता है

% import-module bitstransfer
% Start-BitsTransfer http://path/to/file C:\Path\for\local\file

आप BITS का उपयोग COM के माध्यम से भी कर सकते हैं , यहाँ एक उदाहरण VBScript देखें । और डाउनलोड्स को नियंत्रित करने के लिए एक कमांडलाइन टूल ' बिट्सडमिन ' है:

BITSAdmin is a command-line tool that you can use to create download or
upload jobs and monitor their progress.

विंडोज 7 में bitsadmin.exeही बताया गया है कि यह एक डिप्रेस्ड टूल है। फिर भी:

% bitsadmin.exe /transfer "NAME" http://path/to/file C:\Path\for\local\file

2
अब यह प्रतीत होता है कि बिटसैडमिन को हटा दिया गया है और भविष्य के विंडोज के संस्करणों में शामिल नहीं किया जा सकता है।
जेसन आर। कोमब्स

@ JasonR.Cbs: लिंक? संदर्भ?
अकीरा

2
Technet.microsoft.com/en-us/magazine/ff382721.aspx ... तो, "bitadmin.exe" के बजाय केवल बिट्स-cmdlets का उपयोग करता है।
अकीरा

1
उसके लिए धन्यवाद। सब मुझे जाना था बिट्सडमिन मुझे बता रहा था कि जब मैं इसे चलाता था तो यह पदावनत हो गया था।
जेसन आर। कोमब्स

ध्यान दें कि बाहर पथ पूरी तरह से योग्य और रिश्तेदार नहीं होना चाहिए (टोपी टिप superuser.com/questions/365755/... )
मैट Wilkie

7

वेब क्लाइंट वर्ग का प्रयास करें । इस पृष्ठ के नीचे एक नमूना PowerShell स्क्रिप्ट है :

$c = new-object system.net.WebClient
$r = new-object system.io.StreamReader $c.OpenRead("http://superuser.com")
echo $r.ReadToEnd()

2
यह मददगार है। मैंने पाया कि WebClient में एक DownloadFile विधि भी है, जो सामग्री को सीधे एक फ़ाइल में डाउनलोड करेगी। धन्यवाद।
जेसन आर। कोम्ब्स

3

एक पाठ फ़ाइल में निम्नलिखित छह पंक्तियों (या सिर्फ अंतिम चार पंक्तियों) को कॉपी और पेस्ट करें। फिर इसका नाम बदल दिया vget.vbs

'cscript vget.vbs >FILE.TXT
'Run this vbscript at command line. Use above syntax to download/create FILE.TXT
Set oX = CreateObject("Microsoft.XmlHTTP")
oX.Open "GET", "http://www.exampleURL.com/FILE.TXT", False
oX.Send ""
WScript.Echo oX.responseText

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

  1. जो भाग कहता है " http://www.exampleURL.com/FILE.TXT "। जिस फ़ाइल को आप डाउनलोड करना चाहते हैं, उसके लिए आपको सही यूआरएल को बदलना होगा।
  2. इस स्क्रिप्ट को निष्पादित करने के लिए आप जिस कमांड लाइन पर चलेंगे; स्क्रिप्ट के लिए सही नाम निर्दिष्ट करने की आवश्यकता होगी vget.vbs, यदि ऐसा है तो आप इसे कहते हैं।
  3. और वह नाम FILE.TXTजो आप चाहते हैं कि आउटपुट DOS बैच कमांड लाइन द्वारा निर्देशित किया जाए ।

मैंने केवल अपने ड्रॉपबॉक्स खाते से एक कच्चे ASCII पाठ फ़ाइल (एक अधिक शक्तिशाली cmd स्क्रिप्ट) डाउनलोड करने के लिए इसका उपयोग करने की कोशिश की है , इसलिए मुझे नहीं पता कि क्या यह EXE फ़ाइलों के लिए काम करेगा, आदि; या अन्य webservers से।

यदि आप पहली दो टिप्पणी लाइनों के साथ फैलते हैं, तो यह केवल चार पंक्तियों की लंबी है। यदि आपको VBScript के आसपास अपना रास्ता पता है, तो आप इस कोड को अपने सिर के चारों ओर ले जाने में भी सक्षम हो सकते हैं, और इसे आवश्यकतानुसार कमांड लाइन में टाइप कर सकते हैं। यह केवल पांच प्रमुख आदेश घटक शामिल हैं: CreateObject, .Open, .Send, WScript.Echoऔर .responseText


1

यहां बाहरी उपकरणों के उपयोग के बिना विंडोज पर फ़ाइल कैसे डाउनलोड की जा सकती है, इसके तरीके को फिर से शुरू करने का मेरा प्रयास है।

इसमें BITSADMIN, Microsoft.XmlHTTP और WinHTTP के साथ हाइब्रिड बैच / JScript स्क्रिप्ट शामिल है, जिसे अस्थायी फ़ाइलों की आवश्यकता नहीं है, और jscript.net स्व-संकलित हाइब्रिड के साथ System.Net.WebClinet।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.