Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Powershell将arraylist行更改为列_Powershell - Fatal编程技术网

使用Powershell将arraylist行更改为列

使用Powershell将arraylist行更改为列,powershell,Powershell,在使用arraylist之后,我正在尝试更改arraylist的格式 组对象 统计列表中的所有条目 这是一个样本 $list = [System.Collections.ArrayList]@() $list = "letter","solo","nap","nap","nap","sharp","ignite","tap","tap","tap","tap","evoke" $list | Group-Object | select name,count 这是示例输出 Name

在使用arraylist之后,我正在尝试更改arraylist的格式

组对象

统计列表中的所有条目

这是一个样本

$list = [System.Collections.ArrayList]@()

$list = "letter","solo","nap","nap","nap","sharp","ignite","tap","tap","tap","tap","evoke"

$list |  Group-Object | select name,count 
这是示例输出

Name   Count
----   -----
letter     1
solo       1
nap        3
sharp      1
ignite     1
tap        4
evoke      1
我想要的是

 letter   solo   nap     sharp   ignite  tap   evoke
--------  -----  ----    ----  -----   ------  ----   
    1       1      3      4     1        4       1
然后,当导出到excel时,其格式如下


我所尝试的一切似乎都没有得到回报,甚至没有接近我正在尝试做的事情,我认为我错过了一些明显的东西,或者已经达到了我的PowerShell技能极限。有人能帮忙吗。谢谢您

跳过
组对象
——而是使用字典跟踪计数,然后将整个字典强制转换为自定义对象:

$properties = [ordered]@{}

$list |ForEach-Object {
  $properties[$_]++
}

$counts = [pscustomobject]$properties
$counts
现在将保存一个类似于您所描述的对象,格式如下表所示:

PS C:\> $counts |Format-Table

letter solo nap sharp ignite tap evoke
------ ---- --- ----- ------ --- -----
     1    1   3     1      1   4     1

您可以尝试以下方法:

$list = [System.Collections.ArrayList]@()
$list = "letter","solo","nap","nap","nap","sharp","ignite","tap","tap","tap","tap","evoke"
$group = $list |  Group-Object | select name,count 
$a = [PSCustomObject]@{}
foreach ($item in $group) {
    $a | Add-Member -NotePropertyName $item.name -NotePropertyValue $item.count
}
$a | ft

您可以创建一个,使用将属性添加到其中,然后使用以下内容将输出格式化为表格:

输出:

evoke ignite letter nap sharp solo tap
----- ------ ------ --- ----- ---- ---
    1      1      1   3     1    1   4

一种解决方案是将其放入
PsObject
中,然后将该对象导出到CSV中:

$list = [System.Collections.ArrayList]@()

$list = "letter","solo","nap","nap","nap","sharp","ignite","tap","tap","tap","tap","evoke"

$hash = $list |  Group-Object | select name,count

$object      = New-Object psobject

foreach( $item in $hash ) {
    $column_name = $item.Name
    $row_value   = $item.Count
    $object | Add-Member -MemberType NoteProperty -Name $column_name -Value $row_value
}

$object | Export-csv 'Path to your CSV' -NoTypeInformation

在过去的几天里,你两次帮助我——我对你感激不尽。一个简单易懂的脚本,完全符合我的要求。
$list = [System.Collections.ArrayList]@()

$list = "letter","solo","nap","nap","nap","sharp","ignite","tap","tap","tap","tap","evoke"

$hash = $list |  Group-Object | select name,count

$object      = New-Object psobject

foreach( $item in $hash ) {
    $column_name = $item.Name
    $row_value   = $item.Count
    $object | Add-Member -MemberType NoteProperty -Name $column_name -Value $row_value
}

$object | Export-csv 'Path to your CSV' -NoTypeInformation