Powershell:传递json字符串来卷曲

我试图从PowerShell脚本内传递一个JSON字符串到build.phonegap.com API,使用curl。
根据phonegap的论坛,当在Windows机器上运行时,JSON数据必须格式化为:

curl.exe -ku user@email:mypass -X PUT -d "data={"password":"keypass"}" https://build.phonegap.com/api/v1/key


事实上,从命令行调用时,它确实运行正常。
但是,当我尝试从PowerShell脚本中调用此引用时,双引号似乎被删除。

到目前为止,我已经尝试过:

  • 将JSON放在单引号字符串中:
  •     curl.exe -ku user@email:mypass -X PUT -d '"data={"password":"keypass"}"'  https://build.phonegap.com/api/v1/key
  • 将JSON放在单引号字符串中,而不使用DOS转义反斜杠:
  •     curl.exe -ku user@email:mypass -X PUT -d '"data={"password":"keypass"}"'  https://build.phonegap.com/api/v1/key
  • 将JSON放在单引号字符串中,转义双引号和反斜线(带有反斜杠的DOS样式):
  •     curl.exe -ku user@email:mypass -X PUT -d '"data={"password":"keypass"}"'  https://build.phonegap.com/api/v1/key
  • 将JSON放在双引号字符串中,用powershell返回刻度字符``转义双引号:
  •     curl.exe -ku user@email:mypass -X PUT -d "`"data={`"password`":`"build*2014``"}`""  https://build.phonegap.com/api/v1/key



    任何想法如何实现这一目标?

    感谢你的时间,科恩


    尝试使用--%运算符将PowerShell设置为简单(哑)参数解析模式:

    curl.exe --% -ku user@email:mypass -X PUT -d "data={"password":"keypass"}" https://build.phonegap.com/api/v1/key
    

    对于使用与PowerShell的参数语法相反的参数语法来调用exes通常很有用。 这确实需要PowerShell V3或更高版本。


    设置内容类型:

    curl -H "Content-Type: application/json" -d '{"password":"keypass"}' https://build.phonegap.com/api/v1/key
    
    链接地址: http://www.djcxy.com/p/48611.html

    上一篇: Powershell: passing json string to curl

    下一篇: How do I concatenate strings and variables in PowerShell?