2017-08-10 26 views
0

以下は、$book$authorの値が置き換えられないMy PowerShellスクリプトのスニペットです。私がそれを修正したり、私を助けるいくつかのコードを共有するために適用できるいくつかのテクニックを提案してください。パラメータ値をPowerShellスクリプトに渡す

$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

それは「この体でscript blockを行うには、JSONにスクリプトブロックを変換しよう」と言うので、あなたは、この行に

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

が起こっているいくつかの奇妙なものを持っています。

したがって、ymlフィールドにJSON文字列を使用する場合は、2つのオプションがあります。

  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 
    
+0

@vorou ...私は思いますあなたは中括弧を注意深く見ていないかもしれません。ConvertTo-Jsonは最も外側のコンストラクトであり、ConvertFrom-Jsonはそのハッシュテーブルの要素...もう一度見てください...それらの2つのオプションを提案してくれてありがとう...私は試してみましょう、私はあなたにknowをさせて... –

+0

あなたは正しく、私は中括弧を間違って配置した。アップデートを参照してください – vorou

+0

私はもう解決策を求めていないので、私の質問を無視してください...それはいくつかの他の技術の世話をされています。しかし、本当にヒープを感謝します。 –

関連する問題