ZetCode

PowerShell Get-Item

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍PowerShell中的Get-Item cmdlet。此cmdlet检索有关指定位置的文件、目录和其他项的信息。

项基础知识

PowerShell中的项代表文件、目录或注册表项。Get-Item cmdlet获取这些项,但不获取它们的内容。它检索元数据,如属性、时间戳和路径。此cmdlet对于文件系统导航和检查至关重要。

Get-Item基本用法

使用Get-Item的最简单方法是提供文件或目录路径。这将检索项对象而不包含其内容。支持通配符,但仅返回第一个匹配项。输出显示基本属性。

item1.ps1
Get-Item "C:\Windows\System32\notepad.exe"

此命令检索有关Notepad.exe的信息。输出包括文件的属性、上次写入时间以及完整路径。该项以FileInfo对象的形式返回。

获取目录信息

Get-Item可以像文件一样检索目录信息。对于目录,cmdlet返回一个DirectoryInfo对象。这包含创建时间、父目录等属性。默认情况下不包含目录内容。

item2.ps1
Get-Item "C:\Windows"

此命令获取有关Windows目录的信息。输出显示目录属性和时间戳。要获取内容,请使用Get-ChildItem

PS C:\> .\item2.ps1

    Directory: C:\

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         1/5/2023   2:30 PM                Windows

将通配符与Get-Item一起使用

可以使用通配符匹配多个项,但Get-Item仅返回第一个匹配项。要获取多个匹配项,请使用Get-ChildItem。星号(*)匹配任何字符,而问号(?)匹配单个字符。

item3.ps1
Get-Item "C:\Windows\*.exe"

此命令返回Windows目录中的第一个.exe文件。请注意,尽管有多个匹配项,但只返回了一个项。实际返回的文件可能有所不同。

查看所有项属性

要查看项的所有可用属性,请将输出通过管道传递到Format-List *。这将显示与项相关联的所有元数据。属性包括默认输出中未显示的技术细节。这对于脚本编写很有用。

item4.ps1
Get-Item "C:\Windows\System32\notepad.exe" | Format-List *

此命令显示Notepad.exe的所有属性。输出包括版本信息、安全描述符等。许多属性可用于自动化任务。

访问注册表项

除了文件系统项之外,Get-Item还可以检索注册表项。使用注册表提供程序路径(以HKLM:或HKCU:开头)。这提供了对Windows注册表配置的访问。返回项的属性。

item5.ps1
Get-Item "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"

此命令检索有关Windows注册表项的信息。输出显示项的属性和子项。使用Get-ItemProperty访问注册表值。

按项属性过滤

您可以使用Where-Object根据项的属性对其进行过滤。此示例查找最近7天内修改过的文件。比较使用LastWriteTime属性。此技术适用于任何项属性。

item6.ps1
Get-Item "C:\Windows\*" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-7) }

此命令列出Windows目录中最近修改过的项。$_变量表示管道中的当前项。根据需要调整时间窗口。

获取隐藏项

要检索隐藏项,请使用-Force参数。这会显示设置了Hidden属性的项。通常,Get-Item会跳过隐藏项。这对于系统管理任务很有用。

item7.ps1
Get-Item "C:\Windows\*" -Force | Where-Object { $_.Attributes -match "Hidden" }

此命令查找Windows目录中的隐藏项。-Force参数确保包含隐藏项。检查Attributes属性是否设置了Hidden标志。

来源

PowerShell 文档

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

作者

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

列出 所有 PowerShell 教程