2013-01-23 92 views
1

我試圖運行使用PowerShell中的curl命令如下:逃逸@在引號的字符串的PowerShell

$command=".\curl.exe -k -X POST --data @login.txt -H ""Content-Type:application/json;charset=utf-8"" https://myserversfqdn:4443/ControlPoint/api/v1/login"

$res= Invoke-Expression $command

它給了我一個錯誤說的潑灑操作@無法使用到refernce變量表達式中的..所以我之前@的login.txt ..

$command=".\curl.exe -k -X POST --data '@login.txt -H ""Content-Type:application/json;charset=utf-8"" https://myserversfqdn:4443/ControlPoint/api/v1/login"

加反引號

$res= Invoke-Expression $command

現在,它給了我一個錯誤說的表達缺少一個終結者'(反引號).. 我失去了對如何我通過該命令@字符?任何指導,非常感謝

回答

5

它看起來更像是你使用的是單引號CHARAC之三',而不是反引號:

`

(請注意,反引號通常是在同一鍵作爲〜字符。)

但是,你是你的答案的一半,你也可以用單引號將整個參數包裝爲一個未解析的字符串來傳遞它:

$command=".\curl.exe -k -X POST --data '@login.txt' -H ""Content-Type:application/json;charset=utf-8"" https://myserversfqdn:4443/ControlPoint/api/v1/login" 
+0

謝謝zdan,我使用的是反勾..但它仍然沒有工作,但是把@的login.txt用單引號,你已經證明沒有招數! –

1

您是否嘗試過簡單:

.\curl.exe -k -X POST --data `@login.txt -H "Content-Type:application/json;charset=utf-8" https://myserversfqdn:4443/ControlPoint/api/v1/login