gpt4 book ai didi

Powershell - 在 json 字符串中添加变量

转载 作者:行者123 更新时间:2023-12-04 20:34:27 25 4
gpt4 key购买 nike

我的 powershell 脚本中有以下 json 代码。
我将 $variable 设置为 1111111111

$jsonfile = '{"Version": "2012-10-17","Statement": {"Effect": "Allow","Action": "sts:AssumeRole","Resource": "arn:aws:iam::$variable:role/xxxxxx"}}'

输出给出 ....arn:aws:iam:: $变量 :role/xxxxxx..... 而不是 ....arn:aws:iam:: 1111111111 :角色/xxxxxx

问题是我必须对 json 字符串使用单引号,否则我会得到一个错误。如果我使用单引号,我将无法将变量放在字符串中。我该如何解决这个问题?

最佳答案

另一种解决方案是

$jsonfile = '{{"Version": "2012-10-17","Statement": {{"Effect": "Allow","Action": "sts:AssumeRole","Resource": "arn:aws:iam::{0}:role/xxxxxx"}}}}' -f $variable  

所以你必须用另一个大括号来逃避大括号,但在你的情况下,你的大括号比引号少,所以它是“更少的混淆”:)

在您的情况下,也许最简单的解决方案是将字符串连接在一起,而不是使用字符串格式/插值。

此外,您还可以使用 JSON cmdlet:
$jsonfile | 
ConvertFrom-Json |
% { $_.Statement.Resource = "arn:aws:iam::${variable}:role/xxxxxx"; $_ } |
ConvertTo-Json

关于Powershell - 在 json 字符串中添加变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38387568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com