- Пять простых способов получить список файлов и папок в Windows 10
- Получаем список файлов и папок в командной строке
- Список файлов и папок в PowerShell
- Получение списка файлов или папок в Проводнике
- Получение списка файлов с помощью DirLister
- Используем для получения списка файлов браузер
- List directories and files windows
- Sorting
- Upper and Lower Case filenames:
- Listing the full path
- Errorlevels
- Работа с файлами, папками и разделами реестра Working With Files, Folders and Registry Keys
- Перечисление файлов, папок и разделов реестра (Get-ChildItem) Enumerating Files, Folders, and Registry Keys (Get-ChildItem)
- Перечисление всех элементов в контейнере (-Recurse) Listing all Contained Items (-Recurse)
- Фильтрация элементов по имени (-Name) Filtering Items by Name (-Name)
- Принудительное перечисление скрытых элементов (-Force) Forcibly Listing Hidden Items (-Force)
- Сопоставление имен элементов с подстановочными знаками Matching Item Names with Wildcards
- Исключение элементов (-Exclude) Excluding Items (-Exclude)
- Смешение параметров Get-ChildItem Mixing Get-ChildItem Parameters
Пять простых способов получить список файлов и папок в Windows 10
При работе на компьютере иногда возникает необходимость получить полный список файлов и папок в каталоге или даже целом томе. Понадобиться он может для самых разных целей, например, для каталогизации, для сравнения, для использования в какой-то базе данных и так далее. В большинстве случаев приходится иметь дело с большим числом объектов, поэтому нечего и думать, чтобы составить такой список вручную.
Если создание списка файлов вручную представляется едва ли возможным, то какая есть тому альтернатива, какие программные инструменты лучше всего подойдут для этих целей? Решений существует несколько, все они очень просты и удобны. Получить список файлов и папок можно с помощью обычной командной строки, с помощью PowerShell , штатного Проводника, любого браузера, а также с помощью сторонних специализированных утилит.
Получаем список файлов и папок в командной строке
Для чтения содержимого каталогов в старой доброй командной строке предусмотрена команда dir , её то как раз мы и будем использовать. Итак, запускаем консоль CMD, командой cd Буква диска:/путь (если нужно перейти в другой диск, добавляем после cd ключ /d) переходим в нужное расположение и выполняем эти две команды:
Первая команда устанавливает кириллическую кодировку, вторая сохраняет список всех файлов, папок и вложенных в них объектов в текстовый лог на диске D.
Если нужно получить список только файлов (без вложенных каталогов) , достаточно использовать только ключ /b.
Список файлов и папок в PowerShell
В Windows 10 командная строка заменена консолью PowerShell , для получения списка файлов можете использовать её. Для примера выведем в файл содержимое папки Тест с её подкаталогами:
А можно и проще. Зажав Shift , кликаем по папке ПКМ, выбираем в меню «Открыть PowerShell здесь».
И выполняем в открывшемся окне консоли команду Get-Childitem -Recurse | Out-File D:\filelist.tхt .
Необходимость использования параметра -Path с указанием пути в данном случае отпадает.
Получение списка файлов или папок в Проводнике
Этот способ позволяет получить список либо файлов, либо папок в конкретном расположении. Заходим в целевую папку, выделяем в ней все файлы или папки, зажимаем Shift , кликаем правой кнопкой мыши и выбираем в меню опцию «Копировать как путь».
Пути и имена выделенных объектов будут переданы в буфер обмена, откуда вы уже сможете перенести их в текстовый файл.
Получение списка файлов с помощью DirLister
Для получения хорошо структурированного списка объектов файловой системы можно воспользоваться бесплатной портативной утилитой DirLister, скачав её с официального сайта:
Запустив утилиту, укажите в разделе «Directory To Scan» путь к сканируемому каталогу или диску, в разделе «Output File» выберите расположение для сохранения списка.
Здесь же можно задать параметры сканирования — выбрать формат, указать, нужно ли включать в список вложенные директории и скрытые объекты, задать поиск по маске. После нажатия кнопки «Make List» список будет сохранён в выбранном расположении.
Используем для получения списка файлов браузер
На худой конец для создания списка файлов и папок на диске можно воспользоваться любым браузером. Перетаскиваем папку или диск на новую вкладку браузера и получаем список имеющихся в ней файлов и каталогов.
Рекурсивно пройтись по всем вложенным каталогам, правда, не получится да и для копирования путей и имён файлов и переноса их в отдельный файл придется использовать Ctrl + C и Ctrl + V .
List directories and files windows
Display a list of files and subfolders.
The switches above can be preset by adding them to an environment variable called DIRCMD.
For example: SET DIRCMD=/O:N /S
Override any preset DIRCMD switches by prefixing the switch with —
For example: DIR *.* /-S
Sorting
The default Sort Order, if you don’t specify anything with /O , on an NTFS drive will be in sort-of-alphabetical order or on a FAT USB thumb drive, then the order will be based on the order in which files were created and deleted and the lengths of their names.
Upper and Lower Case filenames:
Filenames longer than 8 characters — will always display the filename with mixed case as entered.
Filenames shorter than 8 characters — can display the filename in upper or lower case — this can vary from one client to another (registry setting)
To obtain a bare DIR format (no heading or footer info) but retain all the details, pipe the output of DIR into FIND, this assumes that your date separator is /
Listing the full path
The command DIR /b will return just a list of filenames, when displaying subfolders with DIR /b /s the command will return a full pathname.
If you want to list the full path without including subfolders, use the FOR command as in this example script.
Errorlevels
If the file(s) were successfully listed %ERRORLEVEL% = 0
If the file was not found or bad parameters given %ERRORLEVEL% = 1
All file sizes are shown in bytes.
DIR is an internal command.
List the contents of c:\demo including ALL files:
List the contents of c:\demo displaying only the filenames:
List only the files (not folders) stored under c:\demo\ recursing into all sub-folders and include any hidden files:
List the contents of c:\demo and H:\work
notice the trailing backslashes, if either directory does not exist, this will fail and set %Errorlevel% = 1
DIR c:\demo\ h:\work\
List all the Reparse Points (symbolic links) in the current users profile:
DIR %USERPROFILE% /a:i
List the contents of c:\demo with the full path of each file (source)
for %%A in («c:\demo\*») do echo %%
List the contents of c:\demo , without the header/footer details:
FOR /f «tokens=*» %%G IN (‘DIR c:\demo\*.* ^| find «/»‘) DO echo %%G
“There it was, hidden in alphabetical order”
Long and Short (8.3) filenames — DIR will match either.
WHERE — Locate and display files in a directory tree.
XCOPY /L — List files without copying.
ROBOCOPY /L — List files with specific properties
DIRUSE — show size of multiple subfolders. (Resource Kit)
You can also get File Sizes and Date/Time from Batch Parameters
Equivalent bash command (Linux): ls — List information about file(s)
Equivalent Powershell: Get-ChildItem — Get the contents of a folder or registry key.
Работа с файлами, папками и разделами реестра Working With Files, Folders and Registry Keys
Windows PowerShell использует существительное Item , чтобы ссылаться на элементы, найденные на диске Windows PowerShell. Windows PowerShell uses the noun Item to refer to items found on a Windows PowerShell drive. При работе с поставщиком FileSystem Windows PowerShell Item может быть файлом, папкой или диском Windows PowerShell. When dealing with the Windows PowerShell FileSystem provider, an Item might be a file, a folder, or the Windows PowerShell drive. Создание списков элементов и работа с ними является критически важной задачей в большинстве административных учреждений, поэтому необходимо подробно обсудить ее. Listing and working with these items is a critical basic task in most administrative settings, so we want to discuss these tasks in detail.
Перечисление файлов, папок и разделов реестра (Get-ChildItem) Enumerating Files, Folders, and Registry Keys (Get-ChildItem)
Так как получение коллекции элементов из определенного расположения является обычной задачей, командлет Get-ChildItem предназначен специально для возврата всех элементов, найденных в контейнере, например в папке. Since getting a collection of items from a particular location is such a common task, the Get-ChildItem cmdlet is designed specifically to return all items found within a container such as a folder.
Если необходимо вернуть все файлы и папки, которые находятся непосредственно в папке C:\Windows, введите: If you want to return all files and folders that are contained directly within the folder C:\Windows, type:
Списки выглядят аналогично тем спискам, которые появляются при вводе команды dir в Cmd.exe или команды ls в командной оболочке UNIX. The listing looks similar to what you would see when you enter the dir command in Cmd.exe , or the ls command in a UNIX command shell.
С помощью параметров командлета Get-ChildItem можно создавать очень сложные списки. You can perform very complex listings by using parameters of the Get-ChildItem cmdlet. Далее рассмотрим несколько сценариев. We will look at a few scenarios next. Синтаксис командлета Get-ChildItem можно увидеть, введя следующее. You can see the syntax the Get-ChildItem cmdlet by typing:
Эти параметры можно скомбинировать и сопоставить для получения настраиваемых выходных данных. These parameters can be mixed and matched to get highly customized output.
Перечисление всех элементов в контейнере (-Recurse) Listing all Contained Items (-Recurse)
Чтобы увидеть оба элемента в папке Windows и все элементы во вложенных папках, используйте параметр Recurse для Get-ChildItem . To see both the items inside a Windows folder and any items that are contained within the subfolders, use the Recurse parameter of Get-ChildItem . В списке отображается все, что находится в папке Windows, а также элементы в ее вложенных папках. The listing displays everything within the Windows folder and the items in its subfolders. Пример: For example:
Фильтрация элементов по имени (-Name) Filtering Items by Name (-Name)
Чтобы отобразить только имена элементов, используйте параметр Name для Get-Childitem . To display only the names of items, use the Name parameter of Get-Childitem :
Принудительное перечисление скрытых элементов (-Force) Forcibly Listing Hidden Items (-Force)
В выходных данных команды Get-ChildItem не отображаются элементы, которые обычно невидимы в проводнике или Cmd.exe. Items that are normally invisible in File Explorer or Cmd.exe are not displayed in the output of a Get-ChildItem command. Чтобы показать скрытые элементы, используйте параметр Force для Get-ChildItem . To display hidden items, use the Force parameter of Get-ChildItem . Пример: For example:
Этот параметр называется Force, так как позволяет принудительно переопределить обычное поведение команды Get-ChildItem . This parameter is named Force because you can forcibly override the normal behavior of the Get-ChildItem command. Параметр Force широко используется для принудительного выполнения действия командлетом. Тем не менее, он не будет выполнять действия, компрометирующие систему безопасности. Force is a widely used parameter that forces an action that a cmdlet would not normally perform, although it will not perform any action that compromises the security of the system.
Сопоставление имен элементов с подстановочными знаками Matching Item Names with Wildcards
Команда Get-ChildItem принимает подстановочные знаки в пути к элементам списка. The Get-ChildItem command accepts wildcards in the path of the items to list.
Так как сопоставление с подстановочными знаками обрабатывается подсистемой Windows PowerShell, все командлеты, которые принимают подстановочные знаки, используют одну нотацию и имеют одно поведение сопоставления. Because wildcard matching is handled by the Windows PowerShell engine, all cmdlets that accepts wildcards use the same notation and have the same matching behavior. В нотацию подстановочных знаков Windows PowerShell входит: The Windows PowerShell wildcard notation includes:
Звездочка ( * ) соответствует нулю или большему количеству вхождений любого символа. Asterisk ( * ) matches zero or more occurrences of any character.
Знак вопроса ( ? ) соответствует ровно одному символу. Question mark ( ? ) matches exactly one character.
Открывающая квадратная скобка ( [ ) и закрывающая квадратная скобка ( ] ) заключают в себя набор символов для сопоставления. Left bracket ( [ ) character and right bracket ( ] ) character surround a set of characters to be matched.
Далее приводится несколько примеров работы спецификации из подстановочных знаков. Here are some examples of how wildcard specification works.
Чтобы найти в каталоге Windows все файлы, имеющие суффикс .log и ровно пять символов в основном имени, введите следующую команду. To find all files in the Windows directory with the suffix .log and exactly five characters in the base name, enter the following command:
Чтобы найти в каталоге Windows все файлы с именами, начинающимися на букву x , введите следующее. To find all files that begin with the letter x in the Windows directory, type:
Чтобы найти все файлы с именами, начинающимися на x или z, введите следующее. To find all files whose names begin with «x» or «z», type:
Дополнительные сведения о подстановочных знаках см. в разделе about_Wildcards. For more information about wildcards, see about_Wildcards.
Исключение элементов (-Exclude) Excluding Items (-Exclude)
Вы можете исключить определенные элементы с помощью параметра Exclude для Get-ChildItem . You can exclude specific items by using the Exclude parameter of Get-ChildItem . Это позволит вам выполнить сложную фильтрацию в одном операторе. This lets you perform complex filtering in a single statement.
Например, вы пытаетесь найти библиотеку службы времени Windows в папке System32 и все, что вам известно об имени библиотеки, — то, что оно начинается с W и содержит 32. For example, suppose you are trying to find the Windows Time Service DLL in the System32 folder, and all you can remember about the DLL name is that it begins with «W» and has «32» in it.
Такое выражение, как w*32*.dll , найдет все библиотеки DLL, которые отвечают этим условиям, но вам может потребоваться дополнительно отфильтровать файлы и пропустить все файлы win32. An expression like w*32*.dll will find all DLLs that satisfy the conditions, but you may want to further filter out the files and omit any win32 files. Эти файлы можно пропустить с помощью параметра Exclude с шаблоном win* . You can omit these files by using the Exclude parameter with the pattern win* :
Смешение параметров Get-ChildItem Mixing Get-ChildItem Parameters
В одной команде можно использовать несколько параметров командлета Get-ChildItem . You can use several of the parameters of the Get-ChildItem cmdlet in the same command. Перед тем как комбинировать параметры, убедитесь, что понимаете принципы сопоставления подстановочных знаков. Before you mix parameters, be sure that you understand wildcard matching. Например, следующая команда не возвращает результатов: For example, the following command returns no results:
Результаты отсутствуют, даже если существуют две библиотеки, которые начинаются на букву z в папке Windows. There are no results, even though there are two DLLs that begin with the letter «z» in the Windows folder.
Результаты не возвращены, так как подстановочный знак указан как часть пути. No results were returned because we specified the wildcard as part of the path. Хотя команда и была рекурсивной, командлет Get-ChildItem ограничил элементы до тех, которые находятся в папке Windows с именами, заканчивающимися на .dll . Even though the command was recursive, the Get-ChildItem cmdlet restricted the items to those that are in the Windows folder with names ending with .dll .
Чтобы указать рекурсивный поиск для файлов, имена которых соответствуют специальному шаблону, используйте параметр Include . To specify a recursive search for files whose names match a special pattern, use the Include parameter.