Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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
Arrays Get-ChildItem数组未按预期工作_Arrays_Powershell - Fatal编程技术网

Arrays Get-ChildItem数组未按预期工作

Arrays Get-ChildItem数组未按预期工作,arrays,powershell,Arrays,Powershell,我找到了一个脚本,我想用它来查找文件夹中的所有子文件夹,并报告上次访问它们的时间以及它们的大小。我希望以前没有人问过这个问题!我正在Win 7机器上使用Powershell v3。 代码如下: $results=@() $folders = Get-ChildItem | where {$_.psiscontainer} foreach ($folder in $folders) { $Size = (Get-ChildItem $folder -Recurse | Measure-O

我找到了一个脚本,我想用它来查找文件夹中的所有子文件夹,并报告上次访问它们的时间以及它们的大小。我希望以前没有人问过这个问题!我正在Win 7机器上使用Powershell v3。 代码如下:

$results=@()
$folders = Get-ChildItem | where {$_.psiscontainer}
foreach ($folder in $folders) 
{
    $Size = (Get-ChildItem $folder -Recurse | Measure-Object -property Length -Sum).sum / 1KB 
    $results += Get-ChildItem | Select-Object Name, LastAccessTime, @{Name="Day's Since Access";Expression={(((Get-Date) - $_.LastAccessTime).Days)}}, @{Name="Size in MB";Expression={$Size}}    
}
$results | sort LastAccessTime | ft -AutoSize
我得到的输出列出了文件夹中的所有文件,同时反复显示子文件夹的大小。我得到的输出如下所示:

名称LastAccessTime自访问以来的日期大小(MB)
-------------
Get-ServicePacks.txt 4/17/2014 5:16:13 PM 4290.09375
Get-ServicePacks.txt 4/17/2014 5:16:13 PM 4121.46875
Get-ServicePacks.txt 4/17/2014 5:16:13下午4 196.87890625
Get-LatestFile.txt 4/21/2014 12:26:45 PM 1212.46875
Get-LatestFile.txt 4/21/2014 12:26:45 PM 1 290.09375
Get-LatestFile.txt 4/21/2014 12:26:45 PM 1196.87890625
Get-LatestFile.ps1 2014年4月21日12:27:53下午1 290.09375
Get-LatestFile.ps1 2014年4月21日12:27:53下午1 196.87890625
Get-LatestFile.ps1 2014年4月21日12:27:53下午1212.46875

我所期待的是:

名称LastAccessTime自访问以来的日期大小(MB)
-------------
使用Gui显示计算机状态和信息2014年4月17日下午5:16:13 4290.09375
GetSpecifiedFileExtension 4/21/2014 12:26:45 PM 1196.87890625
HOTFIXES4/21/2014 12:27:53下午1121.46875


我想格式化输出,以便获得文件夹的大小以及名称和上次访问日期。如果有人能解释我的编码尝试失败的原因,我将不胜感激。

问题是您需要引用
$文件夹
,而不是获取
$results=+
行的文件夹内容。尝试将其更改为:

$results += $folder | Select-Object Name, LastAccessTime, @{Name="Day's Since Access";Expression={(((Get-Date) - $_.LastAccessTime).Days)}}, @{Name="Size in MB";Expression={$Size}}