سؤال كيفية تنزيل الملفات من سطر الأوامر في Windows مثل wget أو curl


كيف يمكنني تنزيل شيء ما من الويب مباشرة دون استخدام Internet Explorer أو Firefox لفتح Acrobat Reader / Quicktime / MS Word / أيا كان؟

أنا باستخدام ويندوز ، لذلك نسخة ويندوز من مجلد مشترك ستفعل.


295


الأصل


سيؤدي النقر بزر الماوس الأيمن فوق أحد الملفات والضغط على "حفظ الهدف باسم" أو "حفظ الرابط باسم" أو "حفظ باسم" (تختلف اللغة حسب المتصفح) إلى العمل. - BrainSlugs83
نقطة وجود أمر هو أن تكون قادرة على كتابة ملف دفعي وتشغيله (ربما كان من المقرر كمهمة) في أي وقت تريده. هذا حيث تقع واجهة المستخدم الرسومية قصيرة. - Jbm
كيف تقوم بالتنزيل مع MS Word؟ - Jaime Hablutzel
JaimeHablutzel لماذا تريد من أي وقت مضى لتحميل شيء عبر MS Word؟ MS Word ليس محطة. - Braden Best
SDsolar أو مجرد upvote / تحسين هذا الجواب أدناه. - Franklin Yu


الأجوبة:


Wget لنظام التشغيل Windows يجب أن تعمل.

من Wget Wiki الأسئلة الشائعة:

جنو Wget هو أداة شبكة مجانية لاسترداد الملفات من العالم   شبكة واسعة تستخدم HTTP و FTP ، وهما الإنترنت الأكثر استخدامًا   البروتوكولات. وهو يعمل بشكل غير تفاعلي ، وبالتالي تمكين العمل في   الخلفية ، بعد تسجيل الخروج.

من عند هذا القسم من الأسئلة الشائعة، وصلات التحميل مقترحة:

ثنائيات ويندوز

يتم استخدام رابط مع مجاملة من Jernej Simončič بدلا من ذلك.


161



هناك أيضا Winwget cybershade.us/winwget إذا كنت تفضل غوي - Col
النسخة المستقلة قابلة للتنزيل من هذا الرابط. - Vito Gentile
أكثر حداثة ، حتى ما يصل إلى التاريخ (اعتبارا من اليوم) ويندوز يبنيمقدمة من Jernej Simončič - Gras Double
cixelsyd تم تحديث الرابط لمصدر بديل. - clearkimura
يتم وضع علامة على eternallybored.org/misc/wget/ بواسطة برنامج مكافحة الفيروسات على نظامي. كربون أسود / بت 9. ربما كاذبة إيجابية. لكن sourceforge واحد يمتد. لا يدعم sslv3. - TamusJRoyce


بديل اكتشفته مؤخرًا ، باستخدام 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. سيتم استخدام بيانات الاعتماد التي تدخلها لتنزيل الملف. ما عليك سوى القيام بذلك مرة واحدة طوال الوقت الذي ستستخدم فيه كائن العميل $.


279



يمكنك أيضًا القيام بذلك في سطر واحد: (new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt') - schellack
Rob بوويرشيل بنيت في ويندوز ... - nhinkle♦
من ويندوز فيستا ، نعم. - Arran
@ BrainSlugs83 ، على الاطلاق ، ولكن الكثير ، كثير، ما زال الناس يستخدمون XP. انها مجرد شيء يجب أن تضع في اعتبارها. - Arran
@ BrainSlugs83 ، يمكنك التقليل من شأن عدد الأشخاص الذين لا يزالون على أنظمة Windows القديمة. أنا لا أفهم المشكلة ، أشرت إلى أنه فقط على ويندوز فيستا صعودا. يمكن للناس أن يختاروا تجاهلها ، أو أن يقولوا "شكرا!" ، لكنك ....؟ إذا كانت لديك مشكلة ، فأنشئ دردشة ويمكننا التحدث. يجب أن يدرك شخص ما مع مندوب (مثلك) هنا ليس المكان المناسب لهذه المناقشة. - Arran


إذا كان لديك PowerShell> = 3.0 ، فيمكنك استخدامه استدعاء-WebRequest

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

أو لعب الغولف

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

قم بتنزيل ملف عبر HTTP في Windows


65



هذا لا يعمل مع عمليات إعادة التوجيه على sourceforge (وربما مواقع أخرى) ، في مقابل System.Net.WebClient. ومع ذلك يمكنك القيام بها Invoke-WebRequest العمل عن طريق إضافة -UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox. - Ela782
هذه هي الإجابة الصحيحة الآن ، @ CédricBelin على حق. السؤال والجواب المقبولة قديمان جدًا. - Factor Mystic
لتشغيل هذا من محطة cmd: powershell -command "& {&'iwr' index.html http://superuser.com}" - dario_ramos
هل هناك خيار لرؤية تقدم التحميل؟ - Franklin Yu
FranklinYu سيظهر التقدم إذا كان الملف كبير بما فيه الكفاية - Steven Penny


يحتوي Windows على أداة تحميل سطر الأوامر الخاصة به - BITSAdmin:

BITSAdmin هي أداة سطر أوامر يمكنك استخدامها لإنشاء تنزيل   أو تحميل وظائف ومراقبة تقدمهم.

تصحيح: 26.01.15 - إليكم نظرة عامة عن كيفية تنزيل الملف على النوافذ بدون أدوات خارجية 

ومثال كامل bitsadmin:

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 على إصدارات Windows الأحدث.للنسخة XP / 2003 ستحتاج إلى حزمة الادوات الادارية لخادم ويندوز 2003


42



مثير للإعجاب. هذا هو واحد من البرامج الخرقاء مقارنة wget. - Matt H
لاحظ أنه لا يشحن مع Windows XP ، وربما ليس مع إصدارات أخرى. - Ian Dunn
تحديث: تم إيقاف خدمة BITSAdmin ولا يمكن ضمان توفرها في الإصدارات المستقبلية من Windows. يتم توفير الأدوات الإدارية لخدمة BITS بواسطة أوامر cmdlet BITS PowerShell. - nulldev07
MattH: لأنه هو nto suppsoed أن wget في المقام الأول؟ - نرى 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
@ G-. تأخرت للحفل ، لكن هذا هو JavaScript. - prooffreader
حاولت القيام بذلك ل database.clamav.net/daily.cvd، ولكن تم تنزيل 88 كيلوبايت فقط من 44 ميغابايت :( - kokbira


لقد قمت بعمل ملف myGet.bat سريع والذي يستدعي أسلوب PowerShell الموضح أعلاه.

@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



لماذا التراجع؟ هذا يبدو جيدًا بالنسبة لي وهو رد مباشر على السؤال. نعم إنه عالي الجودة ويمكن أن يستخدم تحسينًا ، مثل الهروب من علامات العطف (&) في عنوان URL ، ولكنه يعمل كما هو. - matt wilkie


هناك cURL الأصلية لنظام التشغيل Windows المتاحة هنا. هناك العديد من النكهات المتاحة مع وبدون دعم SSL.

أنت لا تحتاج إلى الأمتعة الزائدة سيغوين ويحب ، مجرد ملف EXE صغير واحد.


من المهم أيضًا معرفة أن هناك كليهما wget و curl الأسماء المستعارة مضمنة في كافة الإصدارات الحديثة من Windows Powershell. هم ما يعادلها.

لا توجد ملفات أو تنزيلات إضافية مطلوبة للحصول عليها wgetوظائف:

باستخدام الضفيرة في Powershell (The Sociable Geek)

مقتطفات:

يمكنك كتابة أمر cURL كأمر يقوم بتنزيل ملف من ملف   مستودع جيثب.

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

وسيبدو الأمر كما لو كان يعمل ، ولكن ما يفعله هو فعلاً   باستخدام cURL كاسم مستعار. في الحالة المذكورة أعلاه ، ما سيحدث هو   أنك ستحصل فقط على العناوين بدلاً من الملف نفسه.

تسمح لك الأسماء المستعارة في PowerShell بإنشاء اختصارات لأوامر أطول ، لذا لا تحتاج إلى كتابتها في كل الأوقات.

إذا كتبت الأمر Get-Alias ​​، فستعطيك قائمة بجميع الأسماء المستعارة المستخدمة في PowerShell. كما ترى ، استدعاء الأمر curl الأمر 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


الميزة الأساسية هي أنها مدمجة في Powershell نفسه حتى يتم تنفيذ هذه التعليمة البرمجية مباشرة دون الحاجة إلى تنزيلات أو أي عمليات إنشاء ملفات إضافية إضافية لجعلها تعمل على أي إصدار حديث من Windows.


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 لنظام التشغيل Windows ، كما أشار آخرون هو بالتأكيد ثاني أفضل خيار. كما نشر في إجابة أخرى يبدو أنك تستطيع تحميل Wget كل من تلقاء نفسهأو يمكنك الاستيلاء عليها كجزء من سيغوين أو 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.44 ميغابايت ، وكان لا يزال يطلق عليه فايرفوكس "Netscape" / أنا يفعل trollface).

بعض النصائح: إنه معالج الأوامر الخاص به ، وله بنية خاصة به. جرب كتابة "مساعدة". جميع مواقع FTP تتطلب اسم مستخدم وكلمة مرور ؛ ولكن إذا كانت تسمح للمستخدمين "المجهولين" ، فإن اسم المستخدم هو "مجهول" وكلمة المرور هي عنوان بريدك الإلكتروني (يمكنك إنشاء حساب إذا كنت لا ترغب في تتبعه ، ولكن عادةً ما يكون هناك نوع من المنطق للتأكد من أنه عنوان بريد إلكتروني صالح).


3



+1 للتفكير في سطر الأوامر ftp! تم ذكر كل من wget و powershell قبل انضمامك إلى الحفلة ، لذا هناك 1. : - / - matt wilkie
كانت الإجابات الأخرى التي أراها من قبل هي كل الخطوط المتعددة و / أو كانت تحتوي على بعض الشفرات التي تشمها - وهذه عبارة عن بطانة قصيرة وبسيطة لتنزيل الملف. - أردت أيضًا تقديم إجابة تغطي جميع القواعد. :-) - BrainSlugs83
لست متأكدًا من سبب وجود علامتي استفهام في الملف الوجهة C:\tmp\file.tx??t - Ploni