Вывести список вложенных папок с общим размеров файлов в каждой из них
Понадобилось. Сначала думал обойтись просто маленьким bat-файлом:
@echo off dir /s | find /v "."
Но вывод получается только таким:
Содержимое папки d:\Temp\Папка1 4 файлов 458 399 байт Содержимое папки d:\Temp\Папка2 17 файлов 380 008 байтМне же надо хотя бы
d:\Temp\Папка1 4 файлов 458 399 байт d:\Temp\Папка2 17 файлов 380 008 байт
Нетрудно получить отдельно список сумм размеров файлов во вложенных папках
dir /s | find "байт"
или список путей
dir /s | find "Содержимое папки"
Но как их объединить?
"Ручная" обработка или написание отдельного скрипта для форматирования вывода меня не устраивали, хотелось всё делать одним кликом.
Также удобно, если список сортируется по возрастанию поля "байт", однако прикрутить сюда sort
тоже не смог...
Помог только подсказанный на Киберфоруме подход с powershell, чтобы скрипт работал, нужно:
- создать командный файл типа
.bat
, например,sizer.bat
, поместить в него текст скрипта в кодировке DOS OEM-866 (поможет, например, Notepad++ или встроенный текстовый редактор Far Manager). Можно и просто открыть в правильной кодировке файл из приложенного архива; - во второй строке файла прописать нужный путь, у меня это
.\*.*
, то есть, все папки, вложенные в папку, откуда запускается скрипт; - сохранить изменения, запустить батник и наслаждаться.
Так как основная команда длинная и порвёт шаблон, не помещаю сюда этот 5-строчный скрипт, но исходник прикреплён ниже в архиве .zip
Скачать sizer.bat в архиве .zip (1 Кб)
22.01.2021, 16:22 [1054 просмотра]