我目前有一个Powershell脚本,可以将标签从Azure导出到CSV文件,我想做的是更新这个文件上的一些值,然后通过Powershell使用这个文件来更新Azure上的标签。
下面是excel文件的测试示例,名称为资源组File example
在这种情况下,标签用于资源组,标签具有不同的值,并且我还没有找到对这些值进行大量更新的好的解决方案,例如标签可能具有X,Y,Z,K作为值,但是我需要添加T并用W替换一些Y。
我发现批量更新标签是用相同的值更新所有标签,或者单独更新每个资源组的标签,这不是一个解决方案,因为会有数百个资源组。
任何关于这方面的帮助将不胜感激。
尝试了多个脚本以及来自Microsoft文档的cmdlet,但这些都不适用于我所需要的。
2条答案
按热度按时间gwbalxhn1#
您可以采取的一种方法是使用模板引擎。如果您能以某种方式提出一个模板,描述要对.csv文件的单个记录进行的转换,那么剩下要做的事情就是将csv文件应用到模板。
这非常简单,但它不能满足您进行批量更新的需要。批量更新标记的重要性是什么?是否有效利用机器资源?过程的可靠性?
如果您决定使用模板引擎,我有一个非常小的模板引擎,它是由CSV数据驱动的。如下:
这是一个简单的,没有装饰的模板引擎的实现。有许多其他模板引擎可用,其中一些更诡辩。如果你想看几个演示来展示这个功能,你可以访问我在github上的repo:github.com/dcressey/expand-csv
ldxq2e6h2#
1.若要用新值替换现有的标记值,可以使用
Update-AzTag
1.要将新值与现有值合并/添加,请运行下面的PowerShell脚本,并将
operation
标志更改为**“Merge”**。如果您想有条件地合并/添加标签,请在foreach
下添加一个if
循环,如上所示。