$s3list = Get-S3Bucket | Select-Object BucketName, CreationDate
foreach ($item in $s3list) {
$s3bucket = $item.bucketname
Get-S3BucketTagging -BucketName $s3bucket
}
以上代码不正确。
Get-S3Bucket
创建了两个对象,分别是BucketName
和CreationDate
。
Get-S3BucketTagging
还会创建两个对象Key
和Value
。
如何将其写入以显示在CSV文件中,以便输出如下所示:
*每个BucketName与多个键和值相关联。
答案 0 :(得分:2)
您需要格式化数据,以便输出中的一个对象成为CSV中的一行。由于您有一个S3Bucket
对象和几个对应的S3BucketTagging
个对象,因此您可以针对后者运行foreach循环,并创建一个包含来自两者的数据的自定义对象。
$s3list = Get-S3Bucket | Select-Object BucketName, CreationDate
foreach ($item in $s3list) {
$s3bucket = $item.bucketname
$s3tags=Get-S3BucketTagging -BucketName $s3bucket
foreach ($tag in $s3tags) {
new-object PSObject -property @{
"BucketName"=$item.bucketname;
"CreationDate"=$item.creationdate;
"Key"=$tag.key;
"Value"=$tag.value
} # this puts the newly created object to output
}
}
您可以使用此脚本的输出blick来管道Export-CSV
所需的参数。但请注意,最左边的两列不会被“分组”,因此后续行会出现空白,您必须对CSV进行后期处理。