Когда я делаю команду dir она дает следующую информацию:

02/11/2015  01:39 PM    <DIR>          bar
11/11/2014  07:22 AM    <DIR>          buz
02/12/2015  01:35 PM       140,660,736 foo.sdf
01/21/2015  02:04 PM            10,505 foo.sln
01/21/2015  02:04 PM               256 foo.vssscc

Могу ли я использовать переключатель или даже команду PowerShell, которая перечислит все каталоги с их соответствующими размерами?

1 ответ1

2

Тривиально в PowerShell.

$FolderSize = Get-ChildItem $FolderPath -Recurse -Force | Measure-Object -Property Length -Sum;

$FolderSize.Sum;       #Size in bytes
$FolderSize.Sum / 1MB; #Size in MB
$FolderSize.Sum / 1GB; #Size in GB

Чтобы получить каждую папку в указанной папке и рассчитать каждую, просто выполните итерацию по ним:

$BaseFolder = Get-ChildItem 'C:\Path\To\Folder';

$Results = @();

foreach ($f in $BaseFolder) {
    if ($f.PSIsContainer -eq $true) {
        $Size = Get-ChildItem $f -Recurse -Force | Measure-Object -Property Length -Sum;
    }
    else {
        $Size = Get-ChildItem $f | Measure-Object -Property Length -Sum;
    }
    $Results += New-Object PSObject -Property @{Name = $f.Name; Length = $Size.Sum;}
}

$Results | Format-Table -AutoSize;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .