我找到了一个脚本,我想用它来查找文件夹中的所有子文件夹,并报告它们上次访问的时间以及它们的大小。我希望以前没有问过这个问题!我在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 4 290.09375
Get-ServicePacks.txt 4/17/2014 5:16:13 PM 4 121.46875
Get-ServicePacks.txt 4/17/2014 5:16:13 PM 4 196.87890625
Get-LatestFile.txt 4/21/2014 12:26:45 PM 1 121.46875
Get-LatestFile.txt 4/21/2014 12:26:45 PM 1 290.09375
Get-LatestFile.txt 4/21/2014 12:26:45 PM 1 196.87890625
Get-LatestFile.ps1 4/21/2014 12:27:53 PM 1 290.09375
Get-LatestFile.ps1 4/21/2014 12:27:53 PM 1 196.87890625
Get-LatestFile.ps1 4/21/2014 12:27:53 PM 1 121.46875
我期待的是:
名称LastAccessTime日自访问大小以MB为单位 ---- -------------- ------------------ ----------
Display-Computers-Status-and-info-with-Gui 4/17/2014 5:16:13 PM 4 290.09375
GetSpecifiedFileExtension 4/21/2014 12:26:45 PM 1 196.87890625
HOTFIXES4 / 21/2014 12:27:53 PM 1 121.46875
我想格式化输出,以便获取文件夹的大小以及名称和上次访问日期。如果有人能解释为什么我的编码尝试失败,我将非常感激。
答案 0 :(得分:0)
问题是您需要引用$Folder
而不是获取$results =+
行的文件夹内容。尝试将其更改为:
$results += $folder | Select-Object Name, LastAccessTime, @{Name="Day's Since Access";Expression={(((Get-Date) - $_.LastAccessTime).Days)}}, @{Name="Size in MB";Expression={$Size}}