我想像标题所示那样获取目录中每个文件的大小(KB),并将其与这样的文件名一起存储在数组中。
@(
('Sample.txt',10)
)
我尝试对每个对象使用a并获取像这样的item属性
Get-ChildItem $path | ForEach-Object{
$size += Get-ItemProperty.length
}
但是它不起作用,因为我没有指向它的变量。
答案 0 :(得分:1)
我认为最好使用PSCustomObjects数组。 [ grin ]类似下面的代码。生成的集合可以在其他情况下使用,例如导出到CSV文件。
您可能希望删除.Size_KB
属性上的填充。现在它给出<some spaces><number>
。如果删除,7
,则可以消除左侧的填充空格。
$SourceDir = $env:TEMP
$Filter = '*.log'
$FileList = Get-ChildItem -LiteralPath $SourceDir -Filter $Filter -File
$Results = foreach ($FL_Item in $FileList)
{
[PSCustomObject]@{
Name = $FL_Item.Name
Location = $FL_Item.Directory
Size_KB = '{0,7:N2}' -f ($FL_Item.Length / 1KB)
}
}
$Results
输出...
Name Location Size_KB
---- -------- -------
Genre-List_2018-12-18.log C:\Temp 0.17
Grouping-Strings-List_2018-12-19.log C:\Temp 46.52
Grouping-Words-List_2018-12-19.log C:\Temp 1.13
Itunes_AlbumAutoRating_Disable.ps1_2018-12-17.log C:\Temp 0.21
Itunes_Default-Rating_Set.ps1_2018-12-21.log C:\Temp 0.21
Itunes_Genre-Cleanup.ps1_2018-12-18.log C:\Temp 0.31
Itunes_Grouping-Cleanup.ps1_2018-12-19.log C:\Temp 0.38
Itunes_R-PC-SC_Save.ps1_2018-12-20.log C:\Temp 0.20
jusched.log C:\Temp 9.99
vscode-inno-updater-1545349272.log C:\Temp 337.14
答案 1 :(得分:0)
您要查找的是PowerShell中的哈希表。
使用foreach-object时,您可以使用<meta name="viewport" content="width=device-width" />
引用要迭代的列表中的单个对象
下面的代码将完成您想做的事情:
$_