PowerShell的卷曲双引号

问题描述:

我试图调用在PowerShell中的curl命令,并通过一些JSON的信息。PowerShell的卷曲双引号

这里是我的命令:

curl -X POST -u username:password -H "Content-Type: application/json" -d "{ "fields": { "project": { "key": "key" }, "summary": "summary", "description": "description - here", "type": { "name": "Task" }}}" 

我是越来越通配符的错误和“无与伦比的括号”和主机无法解析等

然后我试图将字符串与前缀双引号反引号字符,但它不能识别的描述JSON领域-字符

感谢

编辑1:

当我在一个普通的批处理文件写的curl命令,我用双引号也没有单引号。另外,在-d字符串中,我使用\将所有双引号转义并且该命令正常工作。

在这种情况下,我的curl实际上是指向curl.exe。我指定了路径,只是没有在这里列出。我也试过围绕-d添加单引号和我:

curl: option -: is unknown curl: try 'curl --help' or 'curl --manual' for more information 

好像它不能在JSON

+1

** 1)**尝试封闭在单引号代替双** 2)**确保'curl.exe'的'-d'说法实际上是被调用。如果我没记错的话'curl'在PowerShell中可以为'调用,WebRequest' – arco444

+0

您好,请您检查以上 – Kingamere

+0

确定的编辑,可能是再退让的别名。在powershell中,转义字符是反引号'所以也许尝试在引号*里面使用* json – arco444

-字符识别数据到curl.exe,而不是试图逃避它。如果你使用@-作为数据参数

$data = @{ 
    fields = @{ 
     project = @{ 
      key = "key" 
     } 
     summary = "summary" 
     description = "description - here" 
     type = @{ 
      name = "Task" 
     } 
    } 
} 

$data | ConvertTo-Json -Compress | curl.exe -X POST -u username:password -H "Content-Type: application/json" -d "@-" 

curl.exe读取标准输入。

P.S:我强烈建议你使用,而不是手动构建JSON字符串如图所示合适的数据结构和ConvertTo-Json,。

+0

我可以扩展json结构中的变量吗?就像我设置$ var =“info”,引用$ var会扩展它? – Kingamere

+1

当然,这是一个普通的Powershell对象。您可以在其中使用任何Powershell表达式,您可以使用循环来构建它,等等。 – Tomalak

+0

另外,在$ data变量中,用于@的字符是什么? – Kingamere