在一个here-string,powershell中的变量扩展

时间:2015-08-10 13:19:57

标签: powershell

我有以下包含其他变量的变量:

$jsontemplate = @"
{
    "jsonrpc": "2.0",
    "method": "trigger.update",
    "params": {
        "triggerid": "$($zabbixtriggerid)",
        "status": 1
    },
                                               "id": "$($zabbixAuth.id)",
                                               "auth": "$($zabbixAuth.auth)"
                                               }
"@

$($ xxx.yyy)格式如果我手动运行脚本但我无法使用它,因为运行该脚本的程序使用$()格式的标记将字符串插入到PowerShell脚本中并且会发疯。任何其他方式达到同样的效果?当我只使用$ xxx.yyy格式时,.yyy部分会被忽略。只有在我使用$()格式时才能解释它。

1 个答案:

答案 0 :(得分:4)

您可以使用格式字符串传递值:

$jsontemplate = @"
{{
    "jsonrpc": "2.0",
    "method": "trigger.update",
    "params": {{
        "triggerid": "{0}",
        "status": 1
    }},
    "id": "{1}",
    "auth": "{2}"
    }}
"@ -f $zabbixtriggerid, $zabbixAuth.id, $zabbixAuth.auth

查看使用三个变量格式化字符串的最后一行。