将参数值传递给PowerShell脚本

时间:2017-08-10 02:36:12

标签: json powershell

以下是我的PowerShell脚本中的代码段,其中参数$book$author的值未被替换。请提供一些技巧,我可以申请修复它或分享一些可以帮助我的代码。

$body = @{
version = '1.0'
inactive = 'false'
yml = { "Service1:\n book: $book\n author: $author\n "} | ConvertFrom-Json
} | ConvertTo-Json

$request = Invoke-WebRequest -UseBasicParsing -Method Post -Uri $uri -Body 
$body -Headers $headers -ContentType $contentType

$response = ConvertFrom-Json -InputObject $request.Content

1 个答案:

答案 0 :(得分:1)

你在这一行中发生了一些奇怪的事情

... yml = { "Service1:\n book: $book\n author: $author\n "} | ConvertFrom-Json } | ConvertTo-Json

因为它说“使用此主体执行script block,并尝试将脚本块转换为JSON”。

所以,如果你想在yml字段中有一个JSON字符串,你有两个选择。

  1. 自己编写正确的JSON字符串:

    @{...put the rest of your elements here...; yml = "{Service1:'', book:'$book', author: '$author'}"
    
  2. 首先填充hashtable,然后将其转换为JSON字符串:

    @{...put the rest of your elements here...; yml = @{Service1=''; book='$book'; author='$author'} } | ConvertTo-Json