curl
PowerShell에 해당하는 것이 있습니까? 유사한 기본 제공 기능이 있거나 타사 cmdlet이 있습니까?
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/
curl
또는 별명으로 지정되었습니다 wget
.
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
...하지만 권장하지 않습니다. 자세한 명령은 코드를 읽을 때 다른 사람들을 도와줍니다.
최신 정보:
현재 파워 쉘 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
에서는 기본값을 제외 하고는 인코딩을 사용할 수 없었습니다.
세부:
get-help curl
. 당신은 볼 Invoke-WebRequest [-Uri] <Uri> ...
브라켓이 함께 []
표시 -Uri
탈락 (따라서 암시 적으로 호출) 할 수 있습니다. 주요 게시물에서 언급했듯이 일반적으로 명시 적으로해야합니다 (나중에 다른 사람이 코드를 읽을 위치).
[]
짓 인지 몰랐어요
get-help
은 일부 버전의 en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form에 제공 됩니다. Extended Backus Naur Form의 일부 버전은 여러 언어의 구문을 설명하는 데 사용되기 때문에 읽거나 훑어 보는 것이 좋습니다. 당신은에서 것을 알 수 있습니다 en.wikipedia.org/wiki/...의 괄호 [ ...]
구문을 지정하는 옵션입니다.
우수한 커맨드 라인 쿵푸 블로그에는 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"
DownloadFile
은 잘 작동 하는 기능을 언급합니다 .
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 가져 오기를 참조하십시오 .