Поделиться через


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

Входные данные

String

Можно передать строку, содержащую путь, в Get-ChildItem.

Выходные данные

Object

Тип возвращаемого Get-ChildItem объекта определяется объектами в пути к диску поставщика.

String

При использовании параметра Get-ChildItemName возвращает имена объектов в виде строк.

Примечания

  • Вы можете ссылаться на Get-ChildItem его встроенные псевдонимы, ls, dirи gci. Подробнее см. в статье about_Aliases.
  • Get-ChildItem не получает скрытые элементы по умолчанию. Чтобы получить скрытые элементы, используйте параметр Force.
  • Командлет Get-ChildItem предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет Get-PSProvider. Дополнительные сведения см. в разделе about_Providers.