Apakah ada yang setara dengan curl
di PowerShell? Apakah ia memiliki kemampuan bawaan yang serupa atau ada cmdlet pihak ke-3?
powershell
curl
Borek Bernard
sumber
sumber
Jawaban:
PowerShell 3.0 memiliki perintah baru
Invoke-RestMethod
:http://technet.microsoft.com/en-us/library/hh849971.aspx
lebih detail:
https://discoposse.com/2012/06/30/powershell-invoke-restmethod-putting-the-curl-in-your-shell/
sumber
curl
atauwget
di Powershell sekarang.Pada Powershell 5.0, jika tidak sebelumnya,
curl
adalah alias untukInvoke-WebRequest
.Untuk menggunakan perintah yang tidak dihapus ...
Jadi kembalikan beberapa properti dari permintaan sebagai berikut ...
... atau hanya isinya ...
Perintah alias yang setara adalah ...
Memanfaatkan default Powershell dan alias lain yang bisa Anda persingkat menjadi perintah
... tapi saya tidak akan merekomendasikannya. Perintah Verbose membantu orang lain saat membaca kode Anda.
Memperbarui:
Powershell 6.x
Penggunaan Alias tidak disarankan
Pada Powershell 6.x "Core"
curl
tidak lagi alias untukInvoke-WebRequest
(aliaswget
juga dihapus). Sebaliknya gunakanInvoke-WebRequest
langsung.Curl tidak lagi merupakan alias untuk Invoke-WebRequest (diuji pada Powershell 6.2.3), meskipun ada penolakan nyata terhadap suatu gerakan dalam RFC "untuk menghapus alias curl dan wget dari Windows PowerShell" .
RFC itu mencatat "Alias wget / curl sudah dihapus dari PowerShell Core sehingga masalah [memiliki alias itu] terbatas pada Windows PowerShell."
Sebagai kesimpulan, tim Powershell juga mendorong pengguna "untuk tidak bergantung pada alias dalam skrip".
Seperti @ v6ak telah catat dalam komentar menggunakan
curl
danwget
di PowerShell (5.0 atau lebih rendah) dapat menjadi masalah di: secara tidak sengaja memanggil ikal asli atau wget jika dipasang berdampingan; dan, bagaimanapun juga, menyebabkan kebingungan.Pengkodean Baru
Disarankan Anda memutakhirkan Powershell "inti" (6.x atau lebih tinggi) agar dapat memanfaatkan pengodean default
utf8NoBOM
, saat menggunakanInvoke-WebRequest
(dan banyak perintah keluaran teks lainnya). Jika seseorang melakukan ini secara eksplisit, Anda dapat melakukan sesuatu seperti:Namun, bahkan ketika menggunakan perintah yang lebih pendek, implisit, ...
... penyandian dengan
utf8NoBOM
akan dilakukan (Anda dapat memverifikasi ini, misalnya, dengan membuka file yang disimpan dalam Visual Studio Code dan mengamati "UTF-8" di bilah status).File yang disimpan dengan
utf8NoBOM
cenderung menyebabkan lebih sedikit masalah saat bepergian melalui berbagai ekosistem. Tentu saja, jika Anda memerlukan penyandian lain, Anda dapat menetapkan beberapa alternatif secara eksplisit.Di Powershell 5.0 dan lebih rendah
utf8NoBOM
penyandian tidak tersedia, apalagi default.Detail:
sumber
get-help curl
. Anda akan melihatInvoke-WebRequest [-Uri] <Uri> ...
, dengan kurung[]
menunjukkan-Uri
bisa ditinggalkan (dan karena itu secara implisit dipanggil). Seperti yang saya sebutkan di posting utama: secara umum Anda harus eksplisit (di mana Anda atau orang lain akan membaca kode Anda di masa depan).[]
terjadiget-help
diberikan dalam beberapa versi en.wikipedia.org/wiki/Extended_Backus%E2%808093Naur_form . Anda sebaiknya membaca / membaca skim itu karena beberapa versi Formulir Extended Backus Naur kemungkinan digunakan untuk menggambarkan sintaks banyak bahasa yang akan Anda temui. Anda akan melihat bahwa di en.wikipedia.org/wiki/... tanda kurung[ ...]
menetapkan sintaks yang opsional.Blog Kung Fu Baris Perintah yang sangat baik memiliki pos tempat mereka membandingkan ikal, wget, dan perintah PowerShell terkait
Pendeknya:
Atau, jika versi Powershell / .Net Anda tidak menerima 2 parameter untuk
DownloadString
:sumber
DownloadFile
fungsi yang juga berfungsi dengan baik.Anda juga dapat menginstal Git untuk Windows , dan kemudian meletakkan folder bin Git di jalur Anda. Instal Git termasuk, antara lain, curl.exe. Setelah menginstal, cukup masukkan
%programfiles(x86)%\git\bin
PATH Anda. Kemudian Anda akan dapat menggunakan perintah curl dari Windows Command Prompt atau PowerShell console.sumber
Anda dapat menginstal cURL dengan Chocolatey dan memiliki curl di PowerShell CLI atau
cmd
.sumber
hal yang paling dekat dengan
wget
ataucurl
di windows adalah bits (Background Intelligent Transfer Service), yang memiliki beberapa cuplikan siap untuk PowerShell.sumber
Perintah ini harus bekerja:
Itu bagian dari Microsoft.PowerShell.Utilitas sejak PowerShell 3.0.
Lihat juga: Dapatkan $ webclient.downloadstring untuk menulis ke file teks di Powershell .
sumber
ikal
cmd, bash
PowerShell
sumber