我是Power Shell的新手,所以我很难理解用于某个操作的命令。
问题:我有一个哈希表,其中每个参数在一个字符串中可以有4个不同的单词,组成字段VALUE。例如:
$table:
Name Value
----- --------
parameter 1 F15 STK15
parameter 2 STK15
parameter 3 GP F15 STK15
如您所见,该表有3个参数,每个参数值是一个STRING,可由3个不同的单词组成:STK F15和GP。
我真正需要的是将这个哈希表导出到4个不同的列中的EXCEL:
NAME GP STK15 F15
所以在EXCEL中会有4列:
NAME GP STK15 F15
parameter1 NULL STK15 F15
and so on.
我不知道怎么做,用|管道out-GridView或者其他什么。
如果我可以将字符串分成3列,那就已经很完美了。有人能帮助我吗?
答案 0 :(得分:1)
您可以执行以下操作:
$table = @{parameter1="F15 STK15";parameter2="STK15";parameter3="GP F15 STK15"}
$outArray = @()
foreach($entry in $table.GetEnumerator()) {
$o = new-object PSCustomObject
$o | Add-Member -notepropertyName "NAME" -notepropertyvalue $entry.name
"F15","STK15","GP" | % {
if($entry.Value -match $_) {
$o | Add-Member -notepropertyname "$_" -notepropertyvalue "$_"
}
else {
$o | Add-Member -notepropertyname "$_" -notepropertyvalue "NULL"
}
}
$outArray += ,$o
}
遍历表并检查您尝试识别的每个数据的匹配项。为哈希表中的每个值创建一个自定义对象,并使用名称,所需数据以及每个数据是否匹配来填充它。然后将对象附加到数组。
然后您有一个对象:
[PS] > $outArray | ft -auto
NAME F15 STK15 GP
---- --- ----- --
parameter2 NULL STK15 NULL
parameter1 F15 STK15 NULL
parameter3 F15 STK15 GP
您可以将其转换为csv
格式以导出到Excel;
[PS] > $outArray | sort -Property NAME | ConvertTo-Csv -NoTypeInformation
"NAME","F15","STK15","GP"
"parameter1","F15","STK15","NULL"
"parameter2","NULL","STK15","NULL"
"parameter3","F15","STK15","GP"