Get-ChildItem
cmdlet命令可以在一个或多个位置获取项目和子项目。 如果项目是容器,则它将项目放入容器内,称为子项目。 位置可以是注册表配置单元,文件系统注册表或证书存储。
此cmdlet不会显示空目录。 gci
,dir
,ls
是此cmdlet的别名。
使用-Recurse
参数获取所有子容器中的项目,并使用-Depth
参数限制要递归的级别数。
Get-ChildItem [[-Path] <string[]>] [[-Filter] <string>] [-Recurse] [-Depth <uint32>] [-Include <string[]>] [-Exclude <string[]>] [-Name] [-Force] [-Directory] [-Attributes <FlagsExpression[FileAttributes]>][-FollowSymlink] [-File] [-Hidden] [-System] [-ReadOnly] [<CommonParameters>]
-Attribute
此参数获取具有指定属性的文件和文件夹,它支持所有属性,并允许您指定属性的复杂组合。
此参数支持以下属性:
使用以下运算符组合属性:
! (NOT)
+ (AND)
, (OR)
注意:请勿使用运算符及其属性之间的空格,而应在逗号后使用。
通用属性使用以下缩写:
D (Directory)
H (Hidden)
R (Read-only)
S (System)
-Depth
-Depth
参数已添加到PowerShell 5.0中,并允许控制递归的深度。默认情况下,cmdlet get-ChildItem
显示父目录的内容。
此参数确定递归中包含的子目录级别的数量并显示其内容。
-Directory
-Directory
参数用于获取目录列表。还可以在目录中使用-Recurse
参数
-Exclude
-Exclude
参数指定为字符串数组,即属性。它还指定cmdlet
从操作中排除的那些项目。 -Exclude
参数的值限定-Path
参数。
输入模式或路径元素,例如A*
或*.txt
。 允许使用通配符。
-Include
-Include
参数将属性指定为字符串数组。它还指定cmdlet包括在操作中的那些项目。 -Include
参数的值限定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
参数或-Attribute
参数与System属性一起使用,仅获取系统文件和目录。
-ReadOnly
将-ReadOnly
参数或-Attribute
参数与Readonly
属性一起使用,以仅获取只读项目。
-FollowSymlink
-FollowSymlink
参数用于搜索以这些符号链接为目标的目录。它是一个动态参数。它仅在FileSystem提供程序中受支持。
示例1: 在当前位置获取子项
在此示例中,此cmdlet(get-childItem)获取当前目录或位置中的子项。 它显示所有文件和子目录名称。 如果某项没有子项,则此cmdlet不会返回任何输出,并返回到PowerShell提示符。
默认情况下,此cmdlet列出模式,LastWriteTime,文件的大小(长度)以及项目的名称。
示例2: 获取给定路径的子项
本示例显示使用-Path
参数在cmdlet中给定路径的子项。
示例3: 获取给定目录或位置中子项的名称
本示例使用-Name
参数仅显示给定目录中项目或文件的名称。 此cmdlet使用-Path
参数指定目录。
示例4: 获取当前目录及其子目录中的子项
本示例将cmdlet get-childItem
与-Recurse
参数一起使用,以搜索当前目录及其子目录。
示例5: 使用深度参数获取项目
本示例使用-Depth
参数来确定递归中包含的子目录层次的数量。 那些空目录从输出中排除。
cmdlet get-chilItem
使用-Path
参数指定C:\users
。 -Depth
参数指定两个递归级别。
cmdlet get-childItem -Path C:\users -Depth 1
显示由-Path
参数指定的目录内容和子目录的一级。