Перенос структуры каталогов из проводника Windows или файлового менеджера в Excel — задача, с которой сталкиваются системные администраторы, архивариусы и даже обычные пользователи при инвентаризации файлов. Казалось бы, что может быть проще: открыл папку, скопировал названия и вставил в таблицу. Но на практике ручной ввод занимает часы, особенно если речь идёт о сотнях вложенных директорий с длинными именами. К счастью, есть как минимум 5 автоматизированных способов решить эту задачу — от встроенных инструментов Windows до скриптов на PowerShell и сторонних утилит.
В этой статье мы разберём каждый метод с пошаговыми инструкциями, сравним их по скорости, универсальности и требованиям к навыкам пользователя. Особое внимание уделим ньюансам экспорта: почему некоторые символы в именах папок могут "ломать" таблицу, как сохранить иерархию вложенности, и что делать, если Excel воспринимает данные как формулы вместо текста. Если вам нужно не просто список, а полный отчёт с размерами файлов, датами изменения или правами доступа — в конце статьи есть бонусный раздел с расширенными решениями.
—— • ——
1. Способ: Командная строка (CMD) + буфер обмена
Самый универсальный метод, который работает на всех версиях Windows — от XP до Windows 11. Здесь не нужны права администратора или дополнительные программы, только стандартные инструменты системы. Суть способа: с помощью команды dir выводим список папок в текстовом формате, а затем переносим его в Excel через буфер обмена.
Почему это работает? Команда dir /AD /B отображает только папки (/AD) в "голом" формате без лишних данных (/B). Результат можно сразу скопировать и вставить в ячейку A1 — Excel автоматически разобьёт строки по отдельным ячейкам. Минус метода: не сохраняется иерархия вложенных папок — вы получите плоский список.
- ⚡ Преимущества: не требует установки ПО, работает на любом ПК.
- ⚠️ Ограничения: нет вложенности, максимальная длина пути — 260 символов.
- 📌 Подходит для: быстрого экспорта списка папок верхнего уровня.
—— • ——
Пошаговая инструкция:
Откройте командную строку (
Win + R→ введитеcmd→Enter).Перейдите в нужную директорию командой
cd "Путь\к\папке"(например,cd "C:\Users\Имя\Documents"). Важно: если путь содержит пробелы, обязательно используйте кавычки!Выполните команду для экспорта списка папок:
dir /AD /B > folders.txtЭта команда сохраняет список в файл
folders.txtв текущей папке.Откройте созданный файл
folders.txtв Блокноте (Notepad), выделите весь текст (Ctrl + A) и скопируйте (Ctrl + C).Вставьте данные в Excel: выделите ячейку
A1и нажмитеCtrl + V. Excel автоматически разобьёт строки по ячейкам.
⚠️ Внимание: Если в именах папок есть точки с запятой (;) или восклицательные знаки (!), Excel может воспринять их как разделители формул. Чтобы избежать ошибок, предварительно отформатируйте столбец как текстовый (Выделите столбец → Главная → Формат → Формат ячеек → Текстовый).
—— • ——
2. Способ: PowerShell для экспорта с вложенностью
Если вам нужно сохранить структуру вложенных папок (например, Папка1\Подпапка1\Подпапка2), стандартная команда dir не подойдёт. Здесь на помощь придёт PowerShell — более мощный инструмент автоматизации Windows. С его помощью можно не только экспортировать имена папок, но и добавлять дополнительные данные: размер, дату создания, атрибуты.
Мы будем использовать cmdlet Get-ChildItem с параметром -Recurse, который рекурсивно обходит все подпапки. Результат выгрузим в файл .csv, который Excel откроет без дополнительных манипуляций. Важный нюанс: PowerShell по умолчанию ограничивает глубину рекурсии до 5 уровней. Если у вас более глубокая структура, добавьте параметр -Depth 10 (или больше).
—— • ——
Скрипт для PowerShell:
Get-ChildItem -Path "C:\Ваш\Путь" -Directory -Recurse -Depth 10 | Select-Object FullName | Export-Csv -Path "C:\output\folders.csv" -NoTypeInformation -Encoding UTF8
- 🔹
-Directory— фильтрует только папки (исключает файлы). - 🔹
-Recurse— включает вложенные папки. - 🔹
-Depth 10— увеличивает глубину обхода (по умолчанию 5). - 🔹
-Encoding UTF8— гарантирует корректное отображение кириллицы.
После выполнения скрипта откройте файл folders.csv в Excel. Данные будут в первом столбце. Чтобы разделить пути по уровням вложенности (например, выделить Папка1, Подпапка1 в отдельные столбцы), используйте функцию Текст по столбцам (Данные → Текст по столбцам → Разделитель → Указать символ "\").
⚠️ Внимание: Если путь к папке содержит специальные символы (например,#,$,%), PowerShell может интерпретировать их как часть команды. В этом случае оберните путь в одинарные кавычки:-Path 'C:\Мой#Проект'.
—— • ——
3. Способ: Экспорт через Total Commander
Если вы предпочитаете файловые менеджеры типа Total Commander или Far Manager, то экспорт списка папок можно выполнить в несколько кликов. Total Commander позволяет сохранять не только имена, но и дополнительные атрибуты: размер, дату изменения, права доступа. Главное преимущество метода — визуальный интерфейс, который упрощает настройку выгружаемых данных.
В отличие от командной строки, здесь можно выбрать формат выгрузки: .txt, .csv или даже .xls (правда, последний поддерживает только базовое форматирование). Ещё один плюс: Total Commander корректно обрабатывает длинные пути (более 260 символов), что актуально для глубоко вложенных структур.
—— • ——
Инструкция для Total Commander:
Откройте Total Commander и перейдите в нужную папку.
Выделите все папки (
Ctrl + A) или только нужные (с зажатымCtrl).Нажмите
Файлы → Сохранить выделенные файлы...(Alt + F9).В окне сохранения:
- Укажите путь для сохраняемого файла (например,
C:\export\folders.csv). - Выберите формат: CSV (разделитель — запятая).
- В разделе Содержимое отметьте галочки:
- 📁 Только имена файлов (чтобы исключить пути).
- 📅 Дата/время (опционально).
- 📏 Размер (если нужны данные о файлах внутри папок).
- Укажите путь для сохраняемого файла (например,
Откройте созданный файл в Excel. Если данные отобразились в одной ячейке, используйте Текст по столбцам (разделитель — запятая).
| Параметр | CMD | PowerShell | Total Commander |
|---|---|---|---|
| Поддержка вложенности | ❌ Нет | ✅ Да (с -Recurse) |
✅ Да (настраивается) |
| Дополнительные атрибуты | ❌ Только имена | ✅ Дата, размер, права | ✅ Дата, размер, атрибуты |
| Ограничение по длине пути | ❌ 260 символов | ✅ До 32 000 символов | ✅ Без ограничений |
| Требуемые навыки | Базовые | Средние | Минимальные |
—— • ——
4. Способ: Специализированные утилиты (Directory List & Print, TreeSize)
Если вам нужно не просто скопировать список папок, а получить полноценный отчёт с размерами, количеством файлов, графиками распределения места — стоит обратить внимание на специализированные программы. Две самые популярные:
- Directory List & Print — бесплатная утилита с поддержкой экспорта в
Excel,PDF,HTML. - TreeSize — платный инструмент для анализа дискового пространства (есть пробная версия).
Эти программы решают сразу несколько задач:
- 📊 Визуализация структуры в виде дерева.
- 📈 Анализ занятого места (полезно для очистки диска).
- 📄 Экспорт в Excel с сохранением иерархии.
—— • ——
Пример работы с Directory List & Print:
Скачайте и установите программу с официального сайта: https://www.infonautics.ch/directorylistprint/.
Запустите утилиту и выберите папку для сканирования.
Настройте параметры экспорта:
- 📁 Include subfolders — включить вложенные папки.
- 📄 Export format →
Excel (.xls). - 📌 Columns — выберите столбцы (например,
Name,Size,Modified).
Нажмите Start и дождитесь завершения сканирования.
Сохраните отчёт в формате .xls или .csv.
—— • ——
5. Способ: Макрос VBA для автоматизации (продвинутый уровень)
Если вы часто работаете с Excel и нуждаетесь в полностью автоматизированном решении, можно написать макрос на VBA, который будет сам обходить папки и заполнять таблицу. Этот метод требует базовых знаний программирования, но даёт максимальную гибкость: вы можете настраивать формат вывода, добавлять фильтры (например, исключать системные папки) или даже интегрировать экспорт с другими задачами.
Ниже приведён пример макроса, который рекурсивно сканирует указанную папку и выводит список вложенных директорий в текущий лист Excel. Важно: перед запуском макроса включите поддержку Microsoft Scripting Runtime (Alt + F11 → Tools → References → Отметьте "Microsoft Scripting Runtime").
—— • ——
Код макроса для Excel VBA:
Sub ExportFoldersToExcel()
Dim fso As New FileSystemObject
Dim folder As Folder
Dim subfolder As Folder
Dim outputRow As Long
' Укажите путь к папке здесь
Set folder = fso.GetFolder("C:\Ваш\Путь")
' Заголовки столбцов
Range("A1").Value = "Путь к папке"
Range("B1").Value = "Дата изменения"
Range("C1").Value = "Атрибуты"
outputRow = 2
' Рекурсивный обход папок
Call ProcessFolder(folder, outputRow)
' Автоподбор ширины столбцов
Columns("A:C").AutoFit
End Sub
Sub ProcessFolder(ByVal folder As Folder, ByRef outputRow As Long)
Dim subfolder As Folder
Dim fso As New FileSystemObject
' Записываем текущую папку
Cells(outputRow, 1).Value = folder.Path
Cells(outputRow, 2).Value = folder.DateLastModified
Cells(outputRow, 3).Value = GetAttributes(folder.Attributes)
outputRow = outputRow + 1
' Обрабатываем вложенные папки
For Each subfolder In folder.Subfolders
Call ProcessFolder(subfolder, outputRow)
Next subfolder
End Sub
Function GetAttributes(attributes As Long) As String
Dim attrString As String
If (attributes And 1) = 1 Then attrString = attrString & "Только чтение, "
If (attributes And 2) = 2 Then attrString = attrString & "Скрытый, "
If (attributes And 4) = 4 Then attrString = attrString & "Системный, "
If (attributes And 16) = 16 Then attrString = attrString & "Папка, "
If Len(attrString) > 0 Then attrString = Left(attrString, Len(attrString) - 2)
GetAttributes = attrString
End Function
—— • ——
Как запустить макрос:
Откройте Excel и нажмите
Alt + F11, чтобы открыть редактор VBA.Вставьте код выше в новый модуль (
Insert → Module).Измените путь
"C:\Ваш\Путь"на актуальный.Закройте редактор и запустите макрос (
Alt + F8 → Выберите).ExportFoldersToExcel→ Выполнить- 📊 Экспорт с размерами папок: используйте
PowerShellс командой: - 🔍 Фильтрация по дате: чтобы экспортировать только папки, изменённые после определённой даты:
- 🔒 Экспорт прав доступа: для этого понадобится модуль NTFSSecurity:
⚠️ Внимание: Макросы могут быть заблокированы настройками безопасности Excel. Если при запуске появляется ошибка, перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов и выберите Включить все макросы (временно).
—— • ——
Бонус: Расширенные возможности экспорта
Если базовый список папок вас не устраивает, и нужны дополнительные данные, рассмотрите следующие варианты:
Get-ChildItem -Path "C:\Путь" -Directory -Recurse | Select-Object FullName, @{Name="Size (MB)"; Expression={(Get-ChildItem $_.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB}} | Export-Csv -Path "C:\output\sizes.csv"
Get-ChildItem -Path "C:\Путь" -Directory -Recurse | Where-Object { $_.LastWriteTime -gt "01.01.2026" } | Select-Object FullName | Export-Csv -Path "C:\output\recent_folders.csv"
Import-Module NTFSSecurity
Get-ChildItem -Path "C:\Путь" -Directory -Recurse | Get-NTFSAccess | Select-Object Path, Account, AccessRights | Export-Csv -Path "C:\output\permissions.csv"
Как экспортировать список папок с сетевого диска?
Для работы с сетевыми папками используйте UNC-пути (например, \\server\share) в командах PowerShell или CMD. Убедитесь, что у вас есть права на чтение! Если команда выдаёт ошибку Access Denied, попробуйте запустить консоль от имени администратора или проверьте сетевые разрешения.
—— • ——
FAQ: Частые вопросы
Можно ли экспортировать список папок с Google Диска или OneDrive?
Да, но не напрямую через командную строку. Варианты:
- Google Диск: используйте Google Apps Script с функцией
DriveApp.getFolders(). - OneDrive: синхронизируйте папки на локальный диск, затем экспортируйте стандартными методами.
Для облачных хранилищ также подойдут специализированные утилиты, например, RaiDrive (монтирует облако как сетевой диск).
Почему в Excel вместо имён папок отображаются знаки вопроса или кракозябры?
Проблема связана с кодировкой. Решения:
- При экспорте через
PowerShellвсегда указывайте-Encoding UTF8. - В Excel при открытии файла
.csvвыберите кодировку UTF-8 (в окне импорта). - Если файл уже открыт с ошибками, закройте его и откройте через
Данные → Из текста/CSV → Выберите файл → Укажите кодировку 65001 (UTF-8).
Как экспортировать список папок с указанием количества файлов в каждой?
Используйте этот скрипт для PowerShell:
Get-ChildItem -Path "C:\Путь" -Directory -Recurse | Select-Object FullName, @{Name="FileCount"; Expression={(Get-ChildItem $_.FullName -File).Count}} | Export-Csv -Path "C:\output\folders_with_counts.csv" -Encoding UTF8
В результате вы получите два столбца: Путь к папке и Количество файлов.
Можно ли автоматизировать экспорт по расписанию?
Да, с помощью Планировщика заданий Windows:
- Создайте
.bat-файл с командой экспорта (например,powershell -command "Get-ChildItem -Path 'C:\Путь' -Directory -Recurse | Export-Csv -Path 'C:\output\folders.csv' -Encoding UTF8"). - Откройте Планировщик заданий (
taskschd.msc). - Создайте новую задачу, укажите путь к
.bat-файлу и настройте расписание (ежедневно, еженедельно и т. д.).
Для отправки отчёта по email добавьте в скрипт команду Send-MailMessage (требуется настройка SMTP).
Как экспортировать список папок из Linux или macOS?
В Linux/macOS используйте команду tree (установите через sudo apt install tree или brew install tree):
tree -d -o folders.txt
Флаги:
-d— только папки (исключает файлы).-o folders.txt— сохраняет результат в файл.
Чтобы перенести данные в Excel, откройте folders.txt и импортируйте через Данные → Из текста (разделитель — табуляция).
—— • ——