2013-01-23 48 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