PowerShell Get-childItem

17 Mar 2025 | 5 分钟阅读

Get-ChildItem cmdlet 获取一个或多个位置中的项目和子项目。如果一个项目是一个容器,它会获取容器内的项目,称为子项目。位置可以是注册表配置单元、文件系统注册表或证书存储。

此 cmdlet 不显示空目录。gci, dir, ls 是此 cmdlet 的别名。

使用 -Recurse 参数获取所有子容器中的项目,并使用 -Depth 参数限制递归的级别数。

语法

参数

-Attribute

此参数获取具有指定属性的文件和文件夹,它支持所有属性,并允许您指定属性的复杂组合。

此参数支持以下属性:

  • Archive, Device, Directory, Encrypted, IntegrityStream, Hidden, NotContentIndexed, Normal, Offline, NoScrubData, ReadOnly, ReparsePoint, Compressed, System, SparseFile, and Temporary.

使用以下运算符组合属性:

  • ! (NOT)
  • + (AND)
  • , (OR)

注意: 不要在运算符及其属性之间使用空格,但在逗号后使用空格。

对常用属性使用以下缩写:

  • D (Directory)
  • H (Hidden)
  • R (Read-only)
  • S (System)

-Depth

-Depth 参数是在 PowerShell 5.0 中添加的,允许您控制递归的深度。默认情况下,cmdlet get-ChildItem 显示父目录的内容。

此参数确定包含在递归中的子目录级别数并显示内容。

-Directory

-Directory 参数用于获取目录列表。我们还可以将 -Recurse 参数与 Directory 一起使用。

-Exclude

-Exclude 参数指定为字符串数组,一个属性。它还指定 cmdlet 从操作中排除的那些项目。 -Exclude 参数的值限定 -Path 参数。

输入模式或路径元素,例如 A**.txt。允许使用通配符。

-Include

-Include 参数指定为字符串数组,一个属性。它还指定 cmdlet 包含在操作中的那些项目。 -Include 参数的值限定 Path 参数。 输入模式或 path 元素,例如 '*.txt'。

仅当 cmdlet 包含项目的内容时,此参数才有效,例如 'C:\Windows\*',其中通配符 '*' 指定 C:\Windows 目录的内容。

-File

-File 参数用于获取文件列表。我们还可以将 -Recurse 参数与 -File 一起使用。

-Filter

-Filter 参数指定一个过滤器来限定 -Path 参数。此参数比其他参数更有效,因为提供程序在 cmdlet 检索对象时应用它们,而不是让 PowerShell 在检索对象后过滤对象。过滤器字符串传递给 .NET API 以枚举文件,API 支持 ?* 通配符。

-Force

-Force 参数允许我们获取用户无法访问的项目,例如系统文件或隐藏文件。此参数不会覆盖文件/安全权限。

-Hidden

-Hidden 参数或带有 Hidden 属性的 -attribute 参数用于仅获取隐藏的项目。

-Path

-Path 参数用于指定一个或多个位置的路径。默认位置是当前目录 '.'。允许使用通配符。

-LiteralPath

-LiteralPath 参数也用于指定一个或多个位置的路径。与 -Path 参数不同,此参数的值完全按照键入的方式使用。如果路径包含任何转义字符,则将其括在引号中。任何字符都不会被解释为通配符。单引号告诉 Windows PowerShell 不要将任何字符解释为转义序列。

-Name

-Name 参数用于仅检索位置中项目的名称。此参数的输出是一个字符串对象,可以向下传递到管道到其他命令。接受通配符。

-Recurse

-Recurse 参数用于获取指定位置中的项目,以及该位置的所有子项目。

-System

使用 -System 参数或带有 System 属性的 -Attribute 参数仅获取系统文件和目录。

-ReadOnly

使用 -ReadOnly 参数或带有 Readonly 属性的 -Attribute 参数仅获取只读项目。

-FollowSymlink

-FollowSymlink 参数用于搜索目标为那些符号链接的目录。它是一个动态参数。仅在 FileSystem 提供程序中受支持。

示例

示例 1:获取当前位置中的子项目

PowerShell Get-childItem

此示例中的 cmdlet (get-childItem) 获取当前目录或位置中的子项目。它显示所有文件和子目录名称。如果一个项目没有子项目,此 cmdlet 不会返回任何输出并返回到 PowerShell 提示符。

默认情况下,此 cmdlet 列出文件的模式、LastWriteTime、大小(长度)和项目的名称

示例 2:获取给定路径的子项目

PowerShell Get-childItem

此示例显示给定路径的子项目,该路径在使用 -Path 参数的 cmdlet 中给出。

示例 3:获取给定目录或位置中子项目的名称

PowerShell Get-childItem

此示例通过使用 -Name 参数仅显示给定目录中的项目或文件的名称。此 cmdlet 使用 -Path 参数指定目录。

示例 4:获取当前目录及其子目录中的子项目

PowerShell Get-childItem

此示例使用带有 -Recurse 参数的 cmdlet get-childItem 来搜索当前目录及其子目录。

示例 5:使用 Depth 参数获取项目

PowerShell Get-childItem

此示例使用 -Depth 参数来确定包含在递归中的子目录级别数。那些空的目录将从输出中排除。

cmdlet get-chilItem 使用 -Path 参数指定 C:\users。 -Depth 参数指定两级递归。

cmdlet get-childItem -Path c:\users -Depth 1 显示由 -Path 参数指定的目录和一个级别的子目录的内容。


下一个主题PowerShell Get-Item