我有:
$report.gettype().name
Object[]
echo $report
Item Average
-- -------
orange 0.294117647058824
orange -0.901960784313726
orange -0.901960784313726
grape 9.91335740072202
grape 0
pear 3.48736462093863
pear -0.0324909747292419
pear -0.0324909747292419
apple 12.1261261261261
apple -0.0045045045045045
Run Code Online (Sandbox Code Playgroud)
我想创建一个变量$ total,(例如哈希表),其中包含每个项目的"Average"列的总和,例如,
echo $total
orange -1.5097
grape 9.913
pear 3.423
apple 12.116
Run Code Online (Sandbox Code Playgroud)
现在我正在考虑循环浏览$报告,但这很难看,而且我正在寻找比下面的起点更优雅的东西(不完整):
$tmpPrev = ""
foreach($r in $report){
$tmp = $r.item
$subtotal = 0
if($tmp <> $tmpPrev){
$subtotal += $r.average
}
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
我正在使用以下Powershell命令:
Get-ChildItem -Recurse *.txt
Run Code Online (Sandbox Code Playgroud)
但是,如果有多个结果,则输出将如下所示:
Get-ChildItem -Recurse *.txt
Run Code Online (Sandbox Code Playgroud)
但是我想以某种形式获得分组结果。
可能是这样的:
Directory: C:\TestFolder\myfolder\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- d/m/yyyy hh:MM PM 1234 dragons.txt
Directory: C:\TestFolder\anotherfolder\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- d/m/yyyy hh:MM PM 66550 jabberwocky.txt
Run Code Online (Sandbox Code Playgroud)
或这个:
Mode LastWriteTime Length Directory Name
---- ------------- ------ --------- ----
-a--- d/m/yyyy hh:MM PM 1234 C:\TestFolder\myfolder\ dragons.txt
-a--- d/m/yyyy hh:MM PM 66550 C:\TestFolder\anotherfolder\ jabberwocky.txt
Run Code Online (Sandbox Code Playgroud)
您可能会明白。我如何才能做到这一点,最好以简单而优雅的方式完成?
我试过了,Get-ChildItem -Recurse *.txt | Format-Table但这没什么用。我还检查了Stack Overflow提出的最相关的类似问题(即“ 使用PowerShell的Get-ChildItem递归 ”,以及其他问题),但是到目前为止,还没有能够提炼出解决方案。 …
powershell ×2