在引号powershell中的字符串中转义@

py_*_*bie 1 powershell curl escaping powershell-3.0

我正在尝试使用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

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

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

zda*_*dan 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"
Run Code Online (Sandbox Code Playgroud)