ZetCode

PowerShell Get-ChildItem

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍PowerShell中的Get-ChildItem cmdlet。此cmdlet从指定位置(如文件和目录)检索项。

Get-ChildItem基础知识

Get-ChildItem cmdlet列出指定位置的项。它可以处理文件系统驱动器、注册表和证书存储。默认情况下,它返回文件和目录。此cmdlet类似于CMD中的dir命令或Unix shell中的ls命令。

Get-ChildItem基本用法

使用Get-ChildItem的最简单方法是不带任何参数。这将列出当前目录中的所有项。输出包括文件的名称、上次写入时间、大小。目录会标有“目录”字样。

childitem1.ps1
Get-ChildItem

此命令检索当前目录中的所有项。输出默认格式化为表格。您可以看到项的名称、类型和日期。

列出特定目录中的项

您可以指定一个路径来列出特定目录中的项。使用-Path参数后跟目录路径。支持相对路径和绝对路径。可以使用通配符进行模式匹配。

childitem2.ps1
Get-ChildItem -Path "C:\Windows\System32"

此命令返回System32目录中的所有项。输出包括系统文件和目录。可能需要管理员权限。

PS C:\> .\childitem2.ps1

    Directory: C:\Windows\System32

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         1/5/2025   8:00 AM                en-US
d-----         1/5/2025   8:00 AM                Drivers
-a----         1/5/2025   8:00 AM          57344 advapi32.dll
-a----         1/5/2025   8:00 AM         102400 kernel32.dll

递归目录列表

要递归地列出所有子目录中的项,请使用-Recurse参数。这将显示完整的目录树结构。请小心处理大型目录树,因为它可能需要一些时间。输出可能非常多。

childitem3.ps1
Get-ChildItem -Path "C:\Temp" -Recurse

此命令列出C:\Temp及其子目录中的所有项。将显示整个树中的每个文件和目录。输出可以进行筛选。

按名称筛选项

您可以使用通配符按名称筛选项。-Filter参数提供高效的模式匹配。这在搜索特定文件时很有用。过滤器在提供程序级别应用。

childitem4.ps1
Get-ChildItem -Path "C:\Windows" -Filter "*.exe"

此命令列出Windows目录中的所有.exe文件。仅返回与模式匹配的可执行文件。搜索不区分大小写。

获取特定项的属性

您可以使用Select-Object选择要显示的特定属性。这允许自定义输出格式。可以指定多个属性。输出可以管道传输到其他cmdlet。

childitem5.ps1
Get-ChildItem | Select-Object Name, Length, LastWriteTime

此命令仅显示项的名称、大小和修改日期。输出比默认格式更清晰。可以添加其他属性。

按大小查找文件

您可以使用Where-Object根据文件大小进行筛选。这有助于识别可能需要注意的大文件。大小默认为字节。可以使用比较运算符设置不同的阈值。

childitem6.ps1
Get-ChildItem -Recurse | Where-Object { $_.Length -gt 10MB }

此命令列出当前目录树中大于10MB的文件。$_变量代表管道中的当前项。根据需要调整大小。

计算目录中的项数

您可以通过计算输出来统计目录中的项数。Measure-Object cmdlet提供了计数功能。这对于库存管理很有用。计数包括文件和目录。

childitem7.ps1
(Get-ChildItem).Count

此命令返回当前目录中的项数。Count属性提供了一个快速的总数。要进行递归计数,请使用-Recurse。

来源

PowerShell 文档

在本文中,我们已经介绍了PowerShell中的Get-ChildItem cmdlet。

作者

我的名字是Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。我从2007年开始撰写编程文章。至今,我已撰写了1400多篇文章和8本电子书。我在教授编程方面拥有十多年的经验。

列出 所有 PowerShell 教程