1

我正在尝试使用 powershell 运行 curl 命令,如下所示:

$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

它给了我一个错误,说喷溅运算符@不能用于引用表达式中的变量..所以我在@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

现在它给了我一个错误,说表达式缺少终止符'(反引号)。我不知道如何在这个命令中传递@字符?非常感谢任何指导

4

2 回答 2

5

看起来您更像是使用单引号字符'而不是反引号:

`

(请注意,反引号通常与 ~ 字符在同一个键上。)

但是您已经完成了答案的一半,您还可以将整个参数用单引号括起来,以将其作为未解析的字符串传递:

$command=".\curl.exe -k -X POST --data '@login.txt' -H ""Content-Type:application/json;charset=utf-8"" https://myserversfqdn:4443/ControlPoint/api/v1/login"
于 2013-01-23T01:33:53.763 回答
1

您是否简单地尝试过:

.\curl.exe -k -X POST --data `@login.txt -H "Content-Type:application/json;charset=utf-8" https://myserversfqdn:4443/ControlPoint/api/v1/login
于 2013-01-23T02:56:32.310 回答