programing

PowerShell에서 curl 명령을 사용하는 방법은 무엇입니까?

powerit 2023. 8. 1. 20:50
반응형

PowerShell에서 curl 명령을 사용하는 방법은 무엇입니까?

사용 중curl명령을 실행하여 Jenkins 작업을 통해 비트 버킷 꺼내기 요청 페이지에 주석을 게시합니다.아래 PowerShell 명령을 사용하여 다음을 실행했습니다.curl명령입니다. 하지만 아래에 언급된 오류를 확인하고 있습니다.누가 이 일을 잘 처리하는 것을 도와줄 수 있습니까?

$CurlArgument="-u xxx@gmail.com:yyyy -X POST https://xxx.bitbucket.org/1.0/repositories/abcd/efg/pull-requests/2229/comments --data content=success"
$CURLEXE='C:\Program Files\Git\mingw64\bin\curl.exe'
& $CURLEXE $CurlArgument

오류 세부 정보:

curl.exe : curl: URL이 지정되지 않았습니다!
라인:3 문자:1& $CULEXE $CurlArgument+ ~~~~~~~~~~~~~~~~~~~~~~~~카테고리정보: 지정되지 않음: (컬: URL이 지정되지 않았습니다!:String) [], 원격 예외Fully Qualified ErrorId: 네이티브 명령 오류
curl: 자세한 내용을 보려면 'curl --help' 또는 'curl --manual'을 사용해 보십시오.

스플래팅을 사용합니다.

$CurlArgument = '-u', 'xxx@gmail.com:yyyy',
                '-X', 'POST',
                'https://xxx.bitbucket.org/1.0/repositories/abcd/efg/pull-requests/2229/comments',
                '--data', 'content=success'
$CURLEXE = 'C:\Program Files\Git\mingw64\bin\curl.exe'
& $CURLEXE @CurlArgument

Powershell 3.0 이상에는 Invoke-WebRequest와 Invoke-Rest 메서드가 모두 있습니다.Curl은 실제로 PoSH에서 Invoke-WebRequest의 별칭입니다.컬보다는 네이티브 파워셸을 사용하는 것이 훨씬 더 적합할 것 같습니다만, 그건 당신에게 달려있습니다 :).

Invoke-WebRequest MSDN 문서는 다음과 같습니다. https://technet.microsoft.com/en-us/library/hh849901.aspx?f=255&MSPPError=-2147217396

Invoke-RestMethod MSDN 문서는 다음과 같습니다. https://technet.microsoft.com/en-us/library/hh849971.aspx?f=255&MSPPError=-2147217396

또는 다음과 같이 스플래팅을 사용하여 curl.exe를 호출할 수도 있습니다.

> curl.exe '-u', 'xxx@gmail.com:yyyy',
 '-X', 'POST',
 'https://xxx.bitbucket.org/1.0/repositories/abcd/efg/pull-requests/2229/comments',                
 '--data', 'content=success'

이 명령을 사용하여 iscurl.exe 위치 확인Get-Command curl.exe

다른 옵션은 별칭 curl 명령을 삭제하는 것입니다.Invoke-WebRequest

PowerShell에서 별칭을 보고 삭제하려면 다음과 같이 하십시오.

>Get-Aliases
>Remove-Item alias:curl

그러면 '.exe' 없이 명령만 실행합니다.

> curl '-u', 'xxx@gmail.com:yyyy',
 '-X', 'POST',
 'https://xxx.bitbucket.org/1.0/repositories/abcd/efg/pull-requests/2229/comments',                
 '--data', 'content=success'

이것이 도움이 되길 바랍니다.

이제 PowerShell은 기본 별칭을 지원합니다(입력하는 경우).help curl
출력이 아래에 표시됩니다.

NAME
    Invoke-WebRequest

SYNTAX
    Invoke-WebRequest [-Uri] <uri> [-UseBasicParsing] [-WebSession <WebRequestSession>] [-SessionVariable <string>] [-Credential <pscredential>] [-UseDefaultCredentials] [-CertificateThumbprint <string>] [-Certificate
    <X509Certificate>] [-UserAgent <string>] [-DisableKeepAlive] [-TimeoutSec <int>] [-Headers <IDictionary>] [-MaximumRedirection <int>] [-Method {Default | Get | Head | Post | Put | Delete | Trace | Options | Merge | Patch}] [-Proxy
    <uri>] [-ProxyCredential <pscredential>] [-ProxyUseDefaultCredentials] [-Body <Object>] [-ContentType <string>] [-TransferEncoding {chunked | compress | deflate | gzip | identity}] [-InFile <string>] [-OutFile <string>] [-PassThru]
     [<CommonParameters>]


ALIASES
    iwr
    wget
    curl


REMARKS
    Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help.
        -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
        -- To view the Help topic for this cmdlet online, type: "Get-Help Invoke-WebRequest -Online" or
           go to https://go.microsoft.com/fwlink/?LinkID=217035.

파일을 다운로드하려면 입력할 수 있습니다.

curl -Uri "https://www.example.com/myfile.txt" -OutFile myfile.txt

컬 대신 다음 명령을 사용할 수 있습니다.

(New-Object System.Net.WebClient).DownloadString("http://google.com")

언급URL : https://stackoverflow.com/questions/40105458/how-to-use-the-curl-command-in-powershell

반응형