БлогNot. Вывести список вложенных папок с общим размеров файлов в каждой из них

Вывести список вложенных папок с общим размеров файлов в каждой из них

Понадобилось. Сначала думал обойтись просто маленьким 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 Кб)


теги: textprocessing bat windows

22.01.2021, 16:22; рейтинг: 70