gpt4 book ai didi

PowerShell-向数组添加列

转载 作者:行者123 更新时间:2023-12-02 18:49:47 29 4
gpt4 key购买 nike

假设您正在做这样的事情:

$partitions = get-wmiobject -query "Associators of {Win32_DiskDrive.DeviceID=""$DevID""} WHERE AssocClass = Win32_DiskDriveToDiskPartition" -computer $ComputerName

如果您想获取每个磁盘(“C:”)的磁盘标题,您需要如下所示:

function GetDiskCaption {
param ($Partition, $ComputerName)

$DeviceID = $Partition.DeviceID
$colLogicalDisk = get-wmiobject -query "Associators of {Win32_DiskPartition.DeviceID=""$DeviceID""} WHERE AssocClass = Win32_LogicalDiskToPartition" -computer $ComputerName

If ($colLogicalDisk.Caption -ne $null) {
return $colLogicalDisk.Caption
}
Else {
return "UNASSIGNED"
}
}

我不是一个非常高级的 PowerShell 用户,所以问题是:将磁盘标题添加到阵列以便可以通过管道将其传输到 ft 或其他脚本中的最佳 PowerShell 方法是什么?

现在我意识到我可以只执行一个 foreach 循环来打印出来,但我想弄清楚如何使用额外的列扩展数组,以便我可以使用管道运算符来格式化数组。

微软网站上关于数组处理的示例都是基于一维数组的,因此添加数组似乎不是答案。

我专门尝试编写一个脚本来转储磁盘列表,及其 iSCSI 映射(如果有)以及该磁盘上的各个分区。

最佳答案

您可以使用哈希表(关联数组):

$hash = @{}
$partitions | %{ $caption = GetDiskCaption $_ $computername; $hash[$caption]=$_ }
$hash

或者创建对象:

$combined = $partitions | %{ $caption = GetDiskCaption $_ $computername
$obj = new-object psobject
$obj | add-member -name caption -type noteproperty -value $caption
$obj | add-member -name partition -type noteproperty -value $_
$obj
}

关于PowerShell-向数组添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7810503/

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