Get-ChildItem
获取一个或多个指定位置中的项和子项。
语法
Get-ChildItem [[-Path] <string[]>] [[-Filter] <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<CommonParameters>]
Get-ChildItem [-LiteralPath] <string[]> [[-Filter] <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<CommonParameters>]
说明
Get-ChildItem cmdlet 获取一个或多个指定位置中的项。如果该项为容器,则此命令将获取容器内的各项(称为子项)。可以使用 Recurse 参数来获取所有子容器中的项。
位置可以是文件系统位置(如目录),也可以是由其他提供程序公开的位置(如注册表配置单元或证书存储区)。
参数
-Exclude <string[]>
忽略指定项。此参数的值对 Path 参数进行限定。请输入路径元素或模式,例如“*.txt”。允许使用通配符。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Filter <string>
以提供程序的格式或语言指定筛选器。此参数的值对 Path 参数进行限定。筛选器的语法(包括通配符的使用)取决于提供程序。筛选器比其他参数更有效,因为提供程序是在检索对象时应用筛选器,而不是在检索对象后再由 Windows PowerShell 筛选对象。
是否为必需? |
false |
位置? |
2 |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Force
允许 cmdlet 获取用户非此不能访问的项,例如隐藏文件或系统文件。不同提供程序有不同的实现。有关详细信息,请参阅 about_Providers。即使使用 Force 参数,该 cmdlet 也无法覆盖安全限制。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Include <string[]>
只检索指定项。此参数的值对 Path 参数进行限定。请输入路径元素或模式,例如“*.txt”。允许使用通配符。
仅当该命令包括 Recurse 参数时,或当路径指向目录的内容时(例如,C:\Windows\*,其中的通配符指定 C:\Windows 目录的内容),Include 参数才有效。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-LiteralPath <string[]>
指定一个或多个位置的路径。与 Path 不同,LiteralPath 的值严格按照所键入的形式使用。不会将任何字符解释为通配符。如果路径包括转义符,请将其括在单引号中。单引号会告知 Windows PowerShell 不要将所有字符都解释为转义序列。
是否为必需? |
true |
位置? |
1 |
默认值 |
|
是否接受管道输入? |
true (ByPropertyName) |
是否接受通配符? |
false |
-Name
只检索位置中的项的名称。如果将此命令的输出通过管道传递给另一个命令,则只会发送项名称。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Path <string[]>
指定一个或多个位置的路径。允许使用通配符。默认位置为当前目录 (.)。
是否为必需? |
false |
位置? |
1 |
默认值 |
|
是否接受管道输入? |
true (ByValue, ByPropertyName) |
是否接受通配符? |
false |
-Recurse
获取指定位置及其所有子项中的项。
仅当路径指向具有子项的容器时(例如,C:\Windows 或 C:\Windows\*),Recurse 才有效,如果路径指向没有子项的项(例如,C:\Windows\*.exe),则 Recurse 无效。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-UseTransaction
将命令包含在活动事务中。仅当正在执行事务时,此参数才有效。有关详细信息,请参阅 about_Transactions。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
<CommonParameters>
此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.
输入和输出
输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。
输入 |
System.String 可以通过管道将包含路径的字符串传递给 Get-ChildItem。 |
输出 |
对象。 Get-ChildItem 返回的对象的类型由它配合使用的提供程序确定。 |
说明
还可以使用 Get-ChildItem 的内置别名“ls”、“dir”和“gci”来对其进行引用。有关详细信息,请参阅 about_Aliases。
默认情况下,Get-ChildItem 不会获取隐藏项。若要获取隐藏项,请使用 -Force。
Get-ChildItem cmdlet 用于处理由任何提供程序公开的数据。要列出会话中可用的提供程序,请键入“Get-PsProvider”。有关详细信息,请参阅 about_Providers。
示例 1
C:\PS>get-childitem
说明
-----------
此命令获取当前位置中的子项。如果当前位置为文件系统目录,则此命令获取当前目录中的文件和子目录。如果该项不具有子项,则此命令将返回命令提示符,而不显示任何内容。
在默认显示中,将列出文件的模式(属性)、上次写入时间、文件大小(长度)和名称。模式的有效值为 d(目录)、a(存档)、r(只读)、h(隐藏)和 s(系统)。
示例 2
C:\PS>get-childitem . -include *.txt -recurse -force
说明
-----------
此命令检索当前目录及其子目录中的所有 .txt 文件。Path 参数值中的点 (.)表示当前目录,而 Include 参数指定文件扩展名。Recurse 参数指示 Windows PowerShell 递归检索对象,并指示该命令的执行对象为指定的目录及其内容。force 参数将隐藏文件添加到显示中。
示例 3
C:\PS>get-childitem c:\windows\logs\* -include *.txt -exclude A*
说明
-----------
此命令列出 Logs 子目录中的 .txt 文件,但名称以字母 A 开头的文件除外。它使用通配符 (*) 以指示 Logs 子目录的内容,而不是目录容器。因为此命令未包括 Recurse 参数,所以 Get-ChildItem 不会自动包括目录的内容;您需要指定该内容。
示例 4
C:\PS>get-childitem registry::hklm\software
说明
-----------
此命令检索本地计算机注册表内的 HKEY_LOCAL_MACHINE\SOFTWARE 项中的所有注册表项。
示例 5
C:\PS>get-childitem -name
说明
-----------
此命令仅检索当前目录中的项的名称。
示例 6
C:\PS>get-childitem cert:\. -recurse -codesigningcert
说明
-----------
此命令获取证书存储区中具有代码签名颁发机构的所有证书。
此命令使用 Get-ChildItem cmdlet。此路径指定由 Windows PowerShell 证书提供程序公开的 Cert: 驱动器。反斜杠 (\) 符号指定证书存储的子目录,而点 (.)表示当前目录,即证书存储的根目录。Recurse 参数指定递归搜索。
CodeSigningCertificate 参数是动态参数,仅获取具有代码签名颁发机构的证书。有关详细信息,请键入“get-help certificate”。
示例 7
C:\PS>get-childitem * -include *.exe
说明
-----------
此命令检索当前目录中具有“.exe”文件扩展名的所有项。通配符 (*) 表示当前目录的内容(而不是容器)。使用 Include 参数且不使用 Recurse 参数时,路径必须指向内容,而不是容器。