Featured image of post Подсчет размера папки с помощью PowerShell из командной строки

Подсчет размера папки с помощью PowerShell из командной строки

С помощью команды cmd dir /s <папка> тоже можно подсчитать размер, но выходной информации слишком много, и не все из нее полезно. А фильтрация с помощью find ‘строка’ не универсальна. В Windows 7, 10, 11 и версиях сервера это отличается, поэтому универсальность слишком низка. Поэтому воспользуемся PowerShell – это удобно и просто!

С помощью команды cmd dir /s <папка> тоже можно подсчитать размер, но выходной информации слишком много, и не вся она полезна. А фильтрация с помощью dir /s <папка> | find ‘строка’ не является универсальным решением. В версиях Windows 7, 10, 11 и сервера используются разные формулировки на китайском и английском языках, что делает ее применение неудобным. Поэтому для работы мы воспользуемся PowerShell, что позволит упростить задачу!

Вот одна из команд PowerShell, которая позволяет подсчитать размер папки и ее подкаталогов:

Две строки команд

$folderSize = Get-ChildItem -Path "<путь_к_папке>" -Recurse -File | Measure-Object -Property Length -Sum $folderSize.Sum

Замените <путь_к_папке> на фактический путь к папке, размер которой вы хотите подсчитать.

Эта команда рекурсивно получает все файлы в указанной папке, вычисляет их общий размер и выводит результат.

Например, чтобы подсчитать размер папки C:\MyFolder и ее подкаталогов, вы можете выполнить следующую команду:

$folderSize = Get-ChildItem -Path "C:\MyFolder" -Recurse -File | Measure-Object -Property Length -Sum $folderSize.Sum

После выполнения команды вы получите общий размер папки C:\MyFolder и ее подкаталогов.

Можно преобразовать выходные данные в мегабайты (MB). Вот соответствующая команда PowerShell:

$sizeInBytes = (Get-ChildItem -Path "<путь_к_папке>" -Recurse -File | Measure-Object -Property Length -Sum).Sum $sizeInMB = $sizeInBytes / 1MB "{0:N2} MB" -f $sizeInMB

Не забудьте заменить <путь_к_папке> на фактический путь к папке, размер которой вы хотите подсчитать.

Эта команда сначала получает общий размер всех файлов в указанной папке и ее подкаталогах. Затем она преобразует размер файла в мегабайты (MB) и выводит результат.

Например, чтобы показать размер папки C:\MyFolder и ее подкаталогов в мегабайтах, выполните следующую команду:

$sizeInBytes = (Get-ChildItem -Path "C:\MyFolder" -Recurse -File | Measure-Object -Property Length -Sum).Sum $sizeInMB = $sizeInBytes / 1MB "{0:N2} MB" -f $sizeInMB

После выполнения команды вы получите результат, который будет выглядеть примерно так, где число зависит от размера папки:

123.45 MB

Если вы хотите вывести размер в гигабайтах, просто замените все MB на GB.

Одна строчка команды

Вы можете записать приведенные выше команды PowerShell в одну строку:

(Get-ChildItem -Path "<путь_к_папке>" -Recurse -File | Measure-Object -Property Length -Sum).Sum

Замените <путь_к_папке> на фактический путь к папке, размер которой вы хотите подсчитать.

Например, чтобы подсчитать размер папки C:\MyFolder и ее подкаталогов, выполните следующую команду:

(Get-ChildItem -Path "C:\MyFolder" -Recurse -File | Measure-Object -Property Length -Sum).Sum

После выполнения команды вы получите общий размер папки C:\MyFolder и ее подкаталогов.

Подсчет размера папки с помощью PowerShell из командной строки

Вывод в мегабайтах:

("{0:N2} MB" -f ((Get-ChildItem -Path "<путь_к_папке>" -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB))

Не забудьте заменить <путь_к_папке> на фактический путь к папке.

Например, чтобы отобразить размер папки C:\MyFolder и ее подкаталогов в мегабайтах, выполните следующую команду:

("{0:N2} MB" -f ((Get-ChildItem -Path "C:\MyFolder" -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB))

Вывод в гигабайтах:

1
("{0:N2} GB" -f ((Get-ChildItem -Path "C:\MyFolder" -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1GB))
Создано при помощи Hugo
Тема Stack, дизайн Jimmy