当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell Get-ChildItem (gci,dir) 指南 [带有示例]

作者:精品下载站 日期:2024-12-14 21:55:12 浏览:14 分类:玩电脑

PowerShell Get-ChildItem (gci,dir) 指南 [带有示例]


PowerShell Get-ChildItem cmdlet 获取一个或多个指定位置中的项目和子项目。 PowerShell Get-ChildItem (GCI) 类似于 Windows 命令提示符中的 dir 命令。 Get-Childitem 别名是 PowerShell gci、ls 和 dir。

[玩转系统] PowerShell Get-ChildItem (gci,dir) 指南 [带有示例]

在本文中,我们将学习 PowerShell Get-ChildItem cmdlet 从目录中获取子项、仅获取子项文件、根据条件获取子项过滤器。

Get-ChildItem (GCI) 获取项目,如果该项目是容器,它将获取容器内可用的子项目。

PowerShell Get-ChildItem 中指定的位置可以是文件系统目录、注册表或证书存储。

让我们通过示例了解 PowerShell Get-ChildItem cmdlet。

PowerShell 获取子项

语法

Get-ChildItem
   [[-Path] <string[]>]
   [[-Filter] <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-FollowSymlink]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]

在上面的语法中,使用Recurse参数来获取所有子目录或容器中的childitem,并使用Depth参数来指定递归获取的层数限制子项目。

如何使用PowerShell Get-ChildItem?

PowerShell Get-ChildItem 从文件系统目录、注册表或证书存储中获取子项。

Get-ChildItem -Path D:\PowerShell\

在上面的命令中,Get-ChildItem 从使用 -Path 参数指定的路径 (D:\PowerShell) 获取子项。

使用 Get-ChildItem 以及使用 Path 参数指定的位置,它会在 PowerShell 控制台上显示文件、目录及其 LastWriteTime、长度(文件大小)、名称

[玩转系统] PowerShell Get-ChildItem (gci,dir) 指南 [带有示例]

PowerShell Get-ChildItem 示例

让我们了解如何使用 PowerShell 通过过滤器获取子项或获取目录中的子项。

让我们来练习!

PowerShell 仅获取子项文件

使用 PowerShell Get-ChildItem cmdlet 和 -File 参数仅过滤和获取子项目文件。

PS C:\> Get-ChildItem -Path D:\PowerShell\ -File 

在上面的例子中,PowerShell get childitem 从 -Path 参数指定的路径获取所有文件

上述 PowerShell GCI 命令的输出,模式 a 表示存档。

PS C:\> Get-ChildItem -Path D:\PowerShell\ -File   
                Directory: D:\PowerShell


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       04-10-2020     14:40             51 ActiveDirectory.csv
-a----       24-10-2020     19:15             29 complist.txt
-a----       24-10-2020     20:08            118 comppingstatus.csv

您还可以使用 PowerShell Get-ChildItem cmdlet 别名 GCI 从目录中获取文件。

[玩转系统] PowerShell Get-ChildItem (gci,dir) 指南 [带有示例]

使用以下命令得到如上结果

PS C:\> gci -Path D:\PowerShell\ -File 

在上面的脚本中,PowerShell gci 仅从指定目录获取文件。

酷提示:如何在 PowerShell 中获取文件创建日期!

PowerShell Get-ChildItem 文件名

PS C:\> Get-ChildItem -Path D:\PowerShell -File | Select Name    

在上面的示例中,PowerShell get-childitem 命令仅使用 Name 属性获取文件名,并且由 -Path 参数指定的位置。

您可以使用Get-ChildItem alias PowerShell GCI从目录中获取文件名,如下所示

Gci -Path D:\PowerShell -File | Select Name

PowerShell 仅获取子项文件大小

Get-ChildItem -Path D:\PowerShell -File | Select Length 

在上面,使用 PowerShell GCI 命令仅使用 Length 属性获取子项目文件大小。

PowerShell Get-ChildItem 递归

如果要获取目录和子目录中的所有文件,请使用 PowerShell Get-ChildItem Recurse 参数。

递归参数搜索目录和子目录中的所有文件。

Get-ChildItem -Path D:\PowerShell\ -Recurse -Force -File

在上面的 PowerShell GCI 示例中,get-childitem Recurse 参数与 -Force 一起获取目录和子目录中的所有文件。

酷提示:了解如何使用 userprincipalname 获取 aduser!

PowerShell 获取子项包括多个扩展

让我们考虑一个获取扩展名为 .txt 和 .zip 的文件的示例,使用 PowerShell Get-ChildItem cmdlet -Include 参数,它获取多个扩展名的输入并返回文件。

Get-ChildItem -Path D:\PowerShell\* -Include *.zip,*.txt  

在上面的PowerShell GCI命令中,我们指定了多个扩展名,例如.zip和.txt,包含参数,查找具有多个扩展名的文件,并返回结果。

注意:在指定位置后使用 *,否则将返回空结果。

酷提示:如何在 PowerShell 中向字符串或变量添加换行符!

PowerShell 获取子项目排除文件夹

使用 -Exclude 参数从文件系统排除文件夹中获取子项目。您可以在命令中指定要排除的多个文件夹

Get-ChildItem -Path D:\PowerShell\* -Directory -Name -Exclude FTP-101,FTP-102   

上面的 PowerShell get childitem 命令返回所有文件夹,从使用 -Exclude 参数指定的路径中排除 FTP-101 和 FTP-102。

酷提示:您知道如何在 PowerShell 中使用 PSScriptRoot 自动变量吗?

如何在 PowerShell 中使用 Get-ChildItem 获取注册表项

Get-ChildItem 使用 Path 参数指定注册表项。

Get-ChildItem -Path HKLM:\Software

它显示了注册表项 HKLM:\Software 配置单元的所有内容。

要排除以某些字符开头的任何子项,您可以使用以下命令

Get-ChildItem -Path HKLM:\Software -Exclude D*

上述命令中的排除参数排除以 D 开头的子项。

下面给出了从配置单元获取注册表项的上述命令的输出

[玩转系统] PowerShell Get-ChildItem (gci,dir) 指南 [带有示例]

使用 Get-ChildItem 获取所有证书

Get-ChildItem -Path Cert:\* -Recurse

在上面的 Get-ChildItem 示例中,它获取 Cert:\ 中可用的所有证书

在PowerShell中获取隐藏文件和目录

Get-ChildItem -Path D:\LogTest\FTP-01\ -Attributes !Directory,!Directory+Hidden

该命令获取路径参数指定的目录中的隐藏文件。

您可以使用以下命令从指定目录获取隐藏目录。

Get-ChildItem -Path D:\LogTest\FTP-01\ -Attributes Directory+Hidden

此命令使用 Attributes Directory + Hidden 获取给定目录中指定的隐藏目录,如下所示:

[玩转系统] PowerShell Get-ChildItem (gci,dir) 指南 [带有示例]

获取指定用户拥有的文件

使用 Get-ChildItem,您可以使用 Get-Acl cmdlet 获取用户拥有的文件

Get-childitem -Path D:\LogTest\FTP-02\ -recurse | get-acl | where {$_.Owner -match "ShellAdmin"}  

此命令检索用户 ShellAdmin 拥有的文件。

指定用户拥有的上述文件的输出如下

[玩转系统] PowerShell Get-ChildItem (gci,dir) 指南 [带有示例]

结论

我希望上面有关 Get-ChildItem (GCI) cmdlet 的文章及其示例仅获取子项文件或目录和子目录中的文件。

您可以使用 PowerShell Get-ChildItem cmdlet 仅获取文件夹或文件夹属性。

使用 Measure-Object 对文件对象执行计算,以获取仅文件夹或子文件夹中的文件数。

您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯