curl
PowerShell에 해당하는 것이 있습니까? 유사한 기본 제공 기능이 있거나 타사 cmdlet이 있습니까?
답변
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/
답변
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
…하지만 권장하지 않습니다. 자세한 명령은 코드를 읽을 때 다른 사람들을 도와줍니다.
최신 정보:
Powershell 6.x
권장하지 않는 별칭 사용
현재 파워 쉘 6.x에서 “핵심은” curl
더 이상의 별칭입니다 Invoke-WebRequest
(별명이 wget
도 제거됩니다). 대신 Invoke-WebRequest
직접 사용하십시오 .
PS> Get-Alias -Definition Invoke-WebRequest | Format-Table -AutoSize
CommandType Name Version Source
----------- ---- ------- ------
Alias iwr -> Invoke-WebRequest
RFC에서 “Windows PowerShell에서 별칭 컬 및 wget을 제거하는” 동작을 명백히 거부하더라도 Curl은 더 이상 Invoke-WebRequest (Powershell 6.2.3에서 테스트)의 별칭이 아닙니다 .
RFC는 “wget / curl 별칭은 PowerShell Core에서 이미 제거되었으므로 이러한 별칭을 갖는 문제는 Windows PowerShell로 제한되었습니다.”라고 말합니다.
결론적으로 Powershell 팀은 사용자에게 “스크립트의 별칭에 의존하지 않도록”권장합니다.
@ v6ak이 PowerShell을 사용 curl
하고 주석 wget
(5.0 이하)에서 언급 한 것처럼 : 나란히 설치된 경우 실수로 실제 컬이나 wget을 호출합니다. 어쨌든 혼란을 유발합니다.
새로운 인코딩
(및 기타 많은 텍스트 출력 명령)을 utf8NoBOM
사용할 때 기본 인코딩을 활용하려면 Powershell “core”(6.x 이상)를 업그레이드하는 것이 좋습니다 Invoke-WebRequest
. 이 작업을 명시 적으로 수행 한 경우 다음과 같은 작업을 수행 할 수 있습니다.
Invoke-WebRequest `
-Uri https://raw.githubusercontent.com/fancyapps/fancybox/master/dist/jquery.fancybox.min.js `
| Select-Object -ExpandProperty Content `
| Out-File jquery.fancybox.min.js `
-Encoding utf8NoBOM
그러나 더 짧고 암시적인 명령을 사용하는 경우에도 …
Invoke-WebRequest `
-Uri https://raw.githubusercontent.com/fancyapps/fancybox/master/dist/jquery.fancybox.min.js `
-OutFile jquery.fancybox.min.js
…로 인코딩 utf8NoBOM
이 완료됩니다 (예를 들어 Visual Studio Code에서 저장된 파일을 열고 상태 표시 줄에서 “UTF-8″을 확인하여이를 확인할 수 있습니다).
함께 저장된 파일 utf8NoBOM
은 다양한 생태계를 여행 할 때 문제를 덜 일으키는 경향이 있습니다. 물론 다른 인코딩이 필요한 경우 다른 대안을 명시 적으로 설정할 수 있습니다.
Powershell 5.0 이하 utf8NoBOM
에서는 기본값을 제외 하고는 인코딩을 사용할 수 없었습니다.
세부:
답변
우수한 커맨드 라인 쿵푸 블로그에는 curl, wget 및 관련 PowerShell 명령을 비교 하는 게시물이 있습니다 .
간단히 말해서 :
(New-Object System.Net.WebClient).DownloadString("http://www.example.com/hello-world.html","C:\hello-world.html")
또는 Powershell / .Net 버전이 DownloadString
다음에 대해 2 개의 매개 변수를 허용하지 않는 경우 :
(New-Object System.Net.WebClient).DownloadString("http://www.example.com/hello-world.html") > "C:\hello-world.html"
답변
Windows 용 Git을 설치 한 다음 Git bin 폴더를 경로에 넣을 수도 있습니다. Git 설치에는 무엇보다도 curl.exe가 포함됩니다. 설치 후 %programfiles(x86)%\git\bin
PATH에 넣으 십시오. 그런 다음 Windows 명령 프롬프트 또는 PowerShell 콘솔에서 curl 명령을 사용할 수 있습니다.
답변
당신은 할 수 Chocolatey으로 컬을 설치 하고 PowerShell을 CLI 또는 사용할 수 컬 있습니다 cmd
.
답변
윈도우 에서 wget
또는 curl
윈도우 에서 가장 가까운 것은 비트 (Background Intelligent Transfer Service)입니다.
답변
이 명령은 작동해야합니다.
Invoke-WebRequest -UseBasicParsing -Uri http://example.com/
PowerShell 3.0 이후 Microsoft.PowerShell.Utility 의 일부입니다 .
Powershell의 텍스트 파일에 쓰려면 $ webclient.downloadstring 가져 오기를 참조하십시오 .