Get-ChildItem
Получает элементы и дочерние элементы в одном или нескольких указанных расположениях
Синтаксис
Get-ChildItem
[[-Path] <string[]>]
[[-Filter] <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Depth <uint32>]
[-Force]
[-Name]
[-UseTransaction]
[-Attributes <FlagsExpression[FileAttributes]>]
[-Directory]
[-File]
[-Hidden]
[-ReadOnly]
[-System]
[<CommonParameters>]
Get-ChildItem
[[-Filter] <string>]
-LiteralPath <string[]>
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Depth <uint32>]
[-Force]
[-Name]
[-UseTransaction]
[-Attributes <FlagsExpression[FileAttributes]>]
[-Directory]
[-File]
[-Hidden]
[-ReadOnly]
[-System]
[<CommonParameters>]
Описание
Командлет Get-ChildItem
получает элементы в одном или нескольких указанных расположениях. Если элемент является контейнером, командлет получает элементы внутри контейнера, называемые дочерними элементами. Параметр Recurse можно использовать для получения элементов во всех дочерних контейнерах, а параметр Depth — для ограничения количества уровней для рекурсии.
Get-ChildItem
не отображает пустые каталоги. Get-ChildItem
Если команда включает параметры Depth или Recurse, пустые каталоги не включаются в выходные данные.
Расположения предоставляются Get-ChildItem
поставщиками PowerShell. Расположением может быть каталог файловой системы, куст реестра или хранилище сертификатов. Дополнительные сведения см. в разделе about_Providers.
Примеры
Пример 1. Получение дочерних элементов из каталога файловой системы
В этом примере возвращаются дочерние элементы из каталога файловой системы. Отображаются имена файлов и подкаталогов. Для пустых расположений команда не возвращает выходные данные и возвращается в строку PowerShell.
Командлет Get-ChildItem
использует параметр Path для указания каталога C:\Test
.
Get-ChildItem
отображает файлы и каталоги в консоли PowerShell.
Get-ChildItem -Path C:\Test
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/15/2019 08:29 Logs
-a---- 2/13/2019 08:55 26 anotherfile.txt
-a---- 2/12/2019 15:40 118014 Command.txt
-a---- 2/1/2019 08:43 183 CreateTestFile.ps1
-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt
По умолчанию Get-ChildItem
перечисляется режим (Атрибуты), LastWriteTime, размер файла (длина) и имя элемента. Буквы в свойстве Mode можно перемежать следующим образом:
l
(ссылка)d
(каталог)a
(архив)r
(только для чтения)h
(скрытый)s
(система).
Дополнительные сведения о флагах режима см. в разделе about_Filesystem_Provider.
Пример 2. Получение имен дочерних элементов в каталоге
Эта команда выводит только имена элементов в каталоге.
Командлет Get-ChildItem
использует параметр Path для указания каталога C:\Test
. Параметр Name возвращает только имена файлов или каталогов из указанного пути.
Get-ChildItem -Path C:\Test -Name
Logs
anotherfile.txt
Command.txt
CreateTestFile.ps1
ReadOnlyFile.txt
Пример 3. Получение дочерних элементов в текущем каталоге и подкаталогах
В этом примере отображаются .txt файлов, расположенных в текущем каталоге и его подкаталогах.
Get-ChildItem -Path C:\Test\*.txt -Recurse -Force
Directory: C:\Test\Logs\Adirectory
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/12/2019 16:16 20 Afile4.txt
-a-h-- 2/12/2019 15:52 22 hiddenfile.txt
-a---- 2/13/2019 13:26 20 LogFile4.txt
Directory: C:\Test\Logs\Backup
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/12/2019 16:16 20 ATextFile.txt
-a---- 2/12/2019 15:50 20 LogFile3.txt
Directory: C:\Test\Logs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/12/2019 16:16 20 Afile.txt
-a-h-- 2/12/2019 15:52 22 hiddenfile.txt
-a---- 2/13/2019 13:26 20 LogFile1.txt
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/13/2019 08:55 26 anotherfile.txt
-a---- 2/12/2019 15:40 118014 Command.txt
-a-h-- 2/12/2019 15:52 22 hiddenfile.txt
-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt
Командлет Get-ChildItem
использует параметр Path для указания C:\Test\*.txt
. Путь использует подстановочный знак звездочки (*
), чтобы указать все файлы с расширением имени файла .txt. Параметр Recurse выполняет поиск в каталоге Path его подкаталогов, как показано в разделе Каталог: заголовки. Параметр Force отображает скрытые файлы, такие как hiddenfile.txt с режимом h.
Пример 4. Получение дочерних элементов с помощью параметра Include
В этом примере Get-ChildItem
используется параметр Include для поиска определенных элементов из каталога, заданного параметром Path .
# When using the -Include parameter, if you do not include an asterisk in the path
# the command returns no output.
Get-ChildItem -Path C:\Test\ -Include *.txt
Get-ChildItem -Path C:\Test\* -Include *.txt
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/13/2019 08:55 26 anotherfile.txt
-a---- 2/12/2019 15:40 118014 Command.txt
-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt
Командлет Get-ChildItem
использует параметр Path для указания каталога C:\Test. Параметр Path содержит подстановочный знак звездочки (*
) для указания содержимого каталога.
Параметр Include использует подстановочный знак звездочки (*
), чтобы указать все файлы с расширением имени файла .txt.
Если используется параметр Include , для параметра Path требуется подстановочный знак звездочки (*
) для указания содержимого каталога. Например, -Path C:\Test\*
.
- Если параметр Recurse добавляется в команду, в параметре Path не требуется символ звездочки (
*
). Параметр Recurse получает элементы из каталога Path и его подкаталогов. Например-Path C:\Test\ -Recurse -Include *.txt
. - Если завершающая звездочка (
*
) не включена в параметр Path , команда не возвращает выходные данные и возвращается в строку PowerShell. Например,-Path C:\Test\
.
Пример 5. Получение дочерних элементов с помощью параметра Exclude
В выходных данных примера показано содержимое каталога C:\Test\Logs. Выходные данные являются ссылкой на другие команды, использующие параметры Exclude и Recurse .
Get-ChildItem -Path C:\Test\Logs
Directory: C:\Test\Logs
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/15/2019 13:21 Adirectory
d----- 2/15/2019 08:28 AnEmptyDirectory
d----- 2/15/2019 13:21 Backup
-a---- 2/12/2019 16:16 20 Afile.txt
-a---- 2/13/2019 13:26 20 LogFile1.txt
-a---- 2/12/2019 16:24 23 systemlog1.log
Get-ChildItem -Path C:\Test\Logs\* -Exclude A*
Directory: C:\Test\Logs
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/15/2019 13:21 Backup
-a---- 2/13/2019 13:26 20 LogFile1.txt
-a---- 2/12/2019 16:24 23 systemlog1.log
Командлет Get-ChildItem
использует параметр Path для указания каталога C:\Test\Logs
.
Параметр Exclude использует подстановочный знак звездочки (*
), чтобы указать, что все файлы или каталоги, начинающиеся с A или a , исключаются из выходных данных.
При использовании параметра Exclude символ звездочки (*
) в параметре Path является необязательным. Например, -Path C:\Test\Logs
или -Path C:\Test\Logs\*
.
- Если завершающая звездочка (
*
) не включена в параметр Path , отображается содержимое параметра Path . Исключениями являются имена файлов или подкаталогов, которые соответствуют значению параметра Exclude . - Если в параметр Path включена завершающая звездочка (
*
), команда повторно переходит в подкаталоги параметра Path. Исключениями являются имена файлов или подкаталогов, которые соответствуют значению параметра Exclude . - Если параметр Recurse добавляется в команду, выходные данные рекурсии будут одинаковыми независимо от того, содержит ли параметр Path символ звездочки (
*
).
Пример 6. Получение разделов реестра из куста реестра
Эта команда получает все разделы реестра из HKEY_LOCAL_MACHINE\HARDWARE
раздела реестра.
Get-ChildItem
использует параметр Path для указания раздела HKLM:\HARDWARE
реестра . Путь к кусту и верхний уровень разделов реестра отображаются в консоли PowerShell.
Дополнительные сведения см. в разделе about_Registry_Provider.
Get-ChildItem -Path HKLM:\HARDWARE
Hive: HKEY_LOCAL_MACHINE\HARDWARE
Name Property
---- --------
ACPI
DESCRIPTION
DEVICEMAP
RESOURCEMAP
UEFI
Get-ChildItem -Path HKLM:\HARDWARE -Exclude D*
Hive: HKEY_LOCAL_MACHINE\HARDWARE
Name Property
---- --------
ACPI
RESOURCEMAP
Первая команда отображает содержимое HKLM:\HARDWARE
раздела реестра. Параметр Exclude указывает Get-ChildItem
, что не следует возвращать подразделы, начинающиеся с D*
. В настоящее время параметр Exclude работает только с подразделами, а не со свойствами элементов.
Пример 7. Получение всех сертификатов с помощью центра подписывания кода
Эта команда получает каждый сертификат на диске PowerShell Cert: с центром подписывания кода.
Командлет Get-ChildItem
использует параметр Path для указания поставщика Cert: . Параметр Recurse выполняет поиск в каталоге, указанном параметром Path и его подкаталогах. Параметр CodeSigningCert получает только сертификаты, имеющие центр подписывания кода.
Get-ChildItem -Path Cert:\* -Recurse -CodeSigningCert
Дополнительные сведения о поставщике сертификатов и диске Cert: см. в разделе about_Certificate_Provider.
Пример 8. Получение элементов с помощью параметра Depth
Эта команда отображает элементы в каталоге и его подкаталогах. Параметр Depth определяет количество уровней подкаталога для включения в рекурсию. Пустые каталоги исключаются из выходных данных.
Get-ChildItem -Path C:\Parent -Depth 2
Directory: C:\Parent
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/14/2019 10:24 SubDir_Level1
-a---- 2/13/2019 08:55 26 file.txt
Directory: C:\Parent\SubDir_Level1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/14/2019 10:24 SubDir_Level2
-a---- 2/13/2019 08:55 26 file.txt
Directory: C:\Parent\SubDir_Level1\SubDir_Level2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/14/2019 10:22 SubDir_Level3
-a---- 2/13/2019 08:55 26 file.txt
Командлет Get-ChildItem
использует параметр Path для указания C:\Parent. Параметр Depth задает два уровня рекурсии. Get-ChildItem
отображает содержимое каталога, указанного параметром Path , и двух уровней подкаталогов.
Параметры
-Attributes
Извлекает файлы и папки с указанными атрибутами. Этот параметр поддерживает все атрибуты и позволяет указывать сложные сочетания атрибутов.
Например, чтобы извлечь зашифрованные или сжатые файлы, не являющиеся системными (которые не являются каталогами), введите следующее:
Get-ChildItem -Attributes !Directory+!System+Encrypted, !Directory+!System+Compressed
Чтобы найти файлы и папки с часто используемыми атрибутами, используйте параметр Attributes . Или параметры Directory, File, Hidden, ReadOnly и System.
Параметр Attributes поддерживает следующие свойства:
- Архив
- Compressed
- Устройство
- Каталог
- Зашифрована
- Скрыта
- IntegrityStream
- Обычный
- NoScrubData
- NotContentIndexed
- В отключенном режиме
- ReadOnly
- ReparsePoint
- SparseFile
- Системные функции
- Временные процедуры
Описание этих атрибутов см. в разделе Перечисление FileAttributes.
Чтобы объединить атрибуты, используйте следующие операторы:
!
(НЕ)+
(AND),
(ИЛИ)
Не используйте пробелы между оператором и его атрибутом. Пробелы принимаются после запятых.
Для распространенных атрибутов используйте следующие сокращения:
D
(Каталог)H
(Скрытый)R
(Только для чтения)S
(Система)
Type: | FlagsExpression<T>[FileAttributes] |
Accepted values: | Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Depth
Этот параметр был добавлен в PowerShell 5.0 и позволяет управлять глубиной рекурсии. По умолчанию Get-ChildItem
отображает содержимое родительского каталога. Параметр Depth определяет количество уровней подкаталога, включенных в рекурсию, и отображает содержимое.
Например, Depth 2
включает каталог параметра Path , первый уровень подкаталогов и второй уровень подкаталогов. По умолчанию имена каталогов и файлов включаются в выходные данные.
Примечание
На компьютере с Windows из PowerShell или cmd.exeможно отобразить графическое представление структуры каталогов с помощью команды tree.com .
Type: | UInt32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Directory
Чтобы получить список каталогов, используйте параметр Directory или Attributes со свойством Directory . Параметр Recurse можно использовать с каталогом.
Type: | SwitchParameter |
Aliases: | ad, d |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Указывает свойство или свойства, исключаемые этим командлетом из операции, в виде массива строк.
Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt
или A*
. Принимаются символы-шаблоны.
Завершающая звездочка (*
) в параметре Path является необязательным. Например, -Path C:\Test\Logs
или -Path C:\Test\Logs\*
. Если указана завершающая звездочка (*
), команда повторно переходит в подкаталоги параметра Path . Без звездочки (*
) отображается содержимое параметра Path . Дополнительные сведения см. в примере 5 и разделе Примечания.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-File
Чтобы получить список файлов, используйте параметр File . Параметр Recurse можно использовать с file.
Type: | SwitchParameter |
Aliases: | af |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Указывает фильтр для указания параметра Path . Поставщик FileSystem — единственный установленный поставщик PowerShell, который поддерживает использование фильтров. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их, когда командлет получает объекты, а не фильтрует объекты PowerShell после их извлечения. Строка фильтра передается в API .NET для перечисления файлов. Этот API поддерживает *
только подстановочные знаки и ?
.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Позволяет командлету получать элементы, которые в противном случае недоступны для пользователей, такие как скрытые или системные файлы. Параметр Force не переопределяет ограничения безопасности. Реализация зависит от поставщика. Дополнительные сведения см. в разделе about_Providers.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Hidden
Чтобы получить только скрытые элементы, используйте параметр Hidden или Attributes со свойством Hidden . По умолчанию Get-ChildItem
не отображает скрытые элементы. Используйте параметр Force для получения скрытых элементов.
Type: | SwitchParameter |
Aliases: | ah, h |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Указывает в качестве массива строк элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например "*.txt"
. Можно использовать подстановочные знаки. Параметр Include действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*
, где подстановочный знак указывает содержимое C:\Windows
каталога.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так же, как оно введено. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки предписывают PowerShell не интерпретировать какие-либо символы как escape-последовательности.
Дополнительные сведения см. в разделе about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Возвращает только имена элементов в расположении. Выходные данные — это строковый объект, который может быть отправлен по конвейеру другим командам. Разрешено использовать подстановочные знаки.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Path
Указывает путь к одному или нескольким расположениям. Подстановочные знаки принимаются. Расположением по умолчанию является текущий каталог (.
).
Type: | String[] |
Position: | 0 |
Default value: | Current directory |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-ReadOnly
Чтобы получить только элементы, доступные только для чтения, используйте параметр ReadOnly или свойство Атрибуты ReadOnly.
Type: | SwitchParameter |
Aliases: | ar |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Recurse
Получает элементы в указанных расположениях и всех дочерних элементах расположений.
Type: | SwitchParameter |
Aliases: | s |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-System
Возвращает только системные файлы и каталоги. Чтобы получить только системные файлы и папки, используйте параметр System или Атрибуты параметра System свойство .
Type: | SwitchParameter |
Aliases: | as |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseTransaction
Включает команду в активную транзакцию. Этот параметр доступен только при выполнении транзакции. Дополнительные сведения см. в разделе about_Transactions.
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Можно передать строку, содержащую путь, в Get-ChildItem
.
Выходные данные
Тип возвращаемого Get-ChildItem
объекта определяется объектами в пути к диску поставщика.
При использовании параметра Get-ChildItem
Name возвращает имена объектов в виде строк.
Примечания
- Вы можете ссылаться на
Get-ChildItem
его встроенные псевдонимы,ls
,dir
иgci
. Подробнее см. в статье about_Aliases. Get-ChildItem
не получает скрытые элементы по умолчанию. Чтобы получить скрытые элементы, используйте параметр Force.- Командлет
Get-ChildItem
предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлетGet-PSProvider
. Дополнительные сведения см. в разделе about_Providers.