سؤال ما يعادل PowerShell من حليقة


هل هناك ما يعادل curl في PowerShell؟ هل يحتوي على بعض إمكانات مضمّنة مشابهة أم أنه يوجد cmdlet تابع لجهة خارجية؟


110
2017-10-10 11:19


الأصل


مغلق؟ ماذا عن الإغلاق superuser.com/questions/34492/...، superuser.com/questions/295021/...، superuser.com/questions/71446/... واستضافة الآخرين؟ - Borek Bernard
في الواقع هذا السؤال يبدو عادلة بما فيه الكفاية بالنسبة لي؟ لكن هناك إجابة قديمة: stackoverflow.com/questions/340553/... - Rup
Spoike حل لطيف ، يجب أن تنشر كإجابة. - Borek Bernard
راجع هذه المقالة حول استخدام curl في PowerShell: thesociablegeek.com/azure/using-curl-in-powershell - SDsolar


الأجوبة:


يحتوي PowerShell 3.0 على الأمر الجديد Invoke-RestMethod:

http://technet.microsoft.com/en-us/library/hh849971.aspx

تفاصيل اكثر:

https://discoposse.com/2012/06/30/powershell-invoke-restmethod-putting-the-curl-in-your-shell/


74
2018-05-04 00:18



قد ترغب في الأمر Invoke-WebRequest بدلاً من ذلك ، اعتماداً على ما تحاول إنجازه. - Timothy Lee Russell
كما انها مستعارة curl أو wget في Powershell الآن. - CMCDragonkai
نعم ، من الغريب أنهم سيعرفونهم ، حيث أن الجملة مختلفة تمامًا. إذا كانت MS لا تريد شحن مدير حزم وتسهل الحصول على أدوات عامة ، فإن الأدوات الأساسية ، وإخفائها خلف اسم مستعار مزيف لن يجعل الوضع أفضل. - MichaelGG
أكبر مشكلة مع Invoke-WebRequest هو أنه لا يعمل إذا لم يتم 'IE' تهيئة؛ لذا عند كتابة خط الأنابيب أو نصوص DSC ، عليك القيام ببعض المهام الإضافية أولاً أو يمكنك استخدام Invoke-RestMethod. - LimpingNinja
LimpingNinja ، هل لديك مصدر لهذا؟ ربما كانت المشكلة التي واجهتها نتيجة لذلك: "-أستعمال BasicParsing كائن الاستجابة لمحتوى HTML بدون توزيع نموذج كائن المستند (DOM). هذه المعلمة مطلوبة عند عدم تثبيت Internet Explorer على أجهزة الكمبيوتر ، مثل تثبيت Core Core لنظام التشغيل Windows Server. " من عند msdn.microsoft.com/powershell/reference/3.0/... - Michael Kelley


ممتازة سطر الأوامر الكونغ فو بلوق قد وظيفة حيث يقارنون curl و wget وأوامر PowerShell ذات الصلة

شيء صغير:

(New-Object System.Net.WebClient).DownloadString("http://www.example.com/hello-world.html","C:\hello-world.html")

أو ، إذا كان إصدار Powershell / .Net لا يقبل معلمتين لـ DownloadString:

(New-Object System.Net.WebClient).DownloadString("http://www.example.com/hello-world.html") > "C:\hello-world.html"

26
2017-10-10 11:26



هذا الجواب يذكر DownloadFile وظيفة والتي تعمل بشكل جيد جدا. - Paul Hicks


اعتبارًا من Powershell 5.0 ، إن لم يكن من قبل ، curl هو اسم مستعار لـ Invoke-WebRequest.

PS> Get-Alias -Definition Invoke-WebRequest | Format-Table -AutoSize

CommandType Name                      Version Source
----------- ----                      ------- ------
Alias       curl -> Invoke-WebRequest
Alias       iwr -> Invoke-WebRequest
Alias       wget -> Invoke-WebRequest

لاستخدام الأمر غير المستقل ...

PS> Invoke-WebRequest -Uri https://localhost:443/
PS> Invoke-WebRequest -Uri https://www.google.com

لذا ، يُرجى إرجاع العديد من خصائص الطلب على النحو التالي ...

PS> Invoke-WebRequest -Uri https://www.google.com

StatusCode        : 200
StatusDescription : OK
Content           : <!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-AU"><head><meta content="text/html; charset=UTF-8"
                    http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/...
RawContent        : HTTP/1.1 200 OK
                    X-XSS-Protection: 1; mode=block
                    X-Frame-Options: SAMEORIGIN
                    Vary: Accept-Encoding

... أو مجرد محتوى ...

PS> Invoke-WebRequest -Uri https://www.google.com | Select-Object -ExpandProperty Content

<!doctype html><html itemscope="" itemtype="http://schem[etc ...]

الأوامر المتكافئة المكافئة هي ...

PS> curl -Uri https://www.google.com
PS> curl -Uri https://www.google.com | Select-Object -ExpandProperty Content

الاستفادة من الافتراضات Powershell وغيرها من الأسماء المستعارة يمكن أن تقصير الأوامر ل

PS> curl https://www.google.com 
ps> curl https://www.google.com | Select -ExpandProperty Content

... لكنني لا أوصي به. تساعد الأوامر المطولة الآخرين عند قراءة التعليمات البرمجية.


25
2017-10-30 23:21



ما هو العلم -Uri تفعل ... أحصل على نفس النتائج مع أو بدونه ل 'curl -Uri api.github.com/rate_limit". لقد بحثت عن هذا ، ولكن لا زلت غير متأكد - Drenai
في بوويرشيليل يمكن أن تستمد بعض أسماء المعلمات ضمنيًا من ترتيب قيم المعلمات. يمكنك رؤية هذا من خلال النظر get-help curl. سوف ترى Invoke-WebRequest [-Uri] <Uri> ...مع الأقواس [] مبينا -Uri يمكن استبعاده (وبالتالي التذرع به ضمنيًا). كما ذكرت في المنشور الرئيسي: بشكل عام يجب أن تكون صريحًا (حيث ستقوم أنت أو الآخرين بقراءة التعليمات البرمجية الخاصة بك في المستقبل). - John Bentley
آه بفضل. لذلك أنا تركها ، ولكن لا يزال يجري التذرع بها ، لم أكن أعرف أن هذا ما [] فعل - Drenai
مرحبا بك. لقد حصلت عليها. وصف تركيب الجملة لأوامر بوويرشيل التي تجدها في get-help ويرد في بعض نسخة من en.wikipedia.org/wiki/Extended_Backus٪E2٪80٪93Naur_form. ستفعل جيدًا القراءة / القراءة المقطعية لأنه من المحتمل استخدام بعض الإصدارات من نموذج Extended Backus Naur لوصف بنية العديد من اللغات التي ستصادفها. ستلاحظ ذلك في en.wikipedia.org/wiki/... اقواس [ ...] تحديد بناء الجملة الذي هو اختياري. - John Bentley


يمكنك أيضا تثبيت بوابة لنظام التشغيل Windowsثم قم بوضع مجلد Git bin في المسار الخاص بك. يتضمن تثبيت Git ، من بين أشياء أخرى ، curl.exe. بعد التثبيت ، وضعت للتو %programfiles(x86)%\git\bin في المسار الخاص بك. ثم ستتمكن من استخدام أمر curl من وحدة تحكم Windows Command Prompt أو PowerShell.


14
2018-04-04 01:20





يمكنك تثبيت cURL مع Chocolatey ولديك curl متوفرة في PowerShell CLI أو cmd.


13
2018-01-22 15:07



ثم اذهب للتصويت لهذا connect.microsoft.com/PowerShell/feedbackdetail/view/1089296/... - MotoWilliams


اقرب شيء ل wget أو curl على ويندوز هو بت (خدمة النقل الذكي في الخلفية) ، والتي تحتوي على بعض المقتطفات جاهزة لـ powershell.


1
2017-12-11 16:38



أعتقد أن BITS يحل مشكلة مختلفة من wget أو curl. - ongle
جلب الأشياء من خادم بروتوكول نقل الملفات؟ - akira
لا :) ، والجزء الاستخبارات الخلفية منه. - ongle


يجب أن يعمل هذا الأمر:

Invoke-WebRequest -UseBasicParsing -Uri http://example.com/

انها جزء من Microsoft.PowerShell.Utility منذ PowerShell 3.0.

أنظر أيضا: احصل على $ webclient.downloadstring للكتابة إلى ملف نصي في Powershell.


0
2018-02-13 12:01