curl과 동등한 PowerShell 제공 기능이 있거나 타사

curlPowerShell에 해당하는 것이 있습니까? 유사한 기본 제공 기능이 있거나 타사 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\binPATH에 넣으 십시오. 그런 다음 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 가져 오기를 참조하십시오 .