Get-Item 命令使用频率非常高,主要是获取位于指定位置的项。 一般搭配使用通配符 (*) 来获取项目的包含的项目。如果不使用*的话只是获取当前项的内容。
一、语法格式
Get-Item [-Path] <string[]> [-Filter <string>] [-Include <string[]>] [-Exclude <string[]>] [-Force] [-Credential <pscredential>] [-Stream <string[]>] [<CommonParameters>]
二、示例
获取当前目录
get-item .
说明: . 表示位于当前位置的项
获取当前目录中的所有项
PS E:\test> get-item * 目录: E:\test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2022/11/26 20:14 13595 1.png -a---- 2022/11/26 20:11 8598 11.xlsx -a---- 2022/11/26 20:16 6362 112.xlsx -a---- 2022/11/26 20:14 13595 18888.png -a---- 2022/11/26 20:11 8598 666.xlsx -a---- 2022/7/7 14:11 13595 logo.png
说明: 通配符 (*) 表示当前项的所有内容
获取指定目录所有的项
PS E:\test> get-item -path d:\test\* 目录: D:\test Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2023/1/28 14:30 111 d----- 2023/7/8 10:21 222 -a---- 2023/4/11 8:51 15093 1.jpg -a---- 2022/8/20 8:30 164106 2.png -a---- 2023/1/29 14:34 14547 3.jfif -a---- 2022/8/1 8:29 58870 4.png -a---- 2023/1/29 15:24 158495 5.png -a---- 2023/2/7 15:06 259 filelist.txt -a---- 2023/4/11 11:00 112752 t3.pdf -a---- 2023/4/11 11:12 580826 url-html.pdf -a---- 2023/4/18 14:23 2389 轮播.html
注意:文件目录不要出现特殊字符,比如空格 等,否则执行会报错。具体看下图。
获取目录的属性,这里获取文件的创建时间
(Get-Item E:\Test).CreationTime
查看目录的所有属性
语法格式:(Get-Item 文件按目录) | Get-Member
PS E:\test> (Get-Item E:\test) | Get-Member
获取注册表项目的内容
首先打开注册表,找到蓝牙的注册表进行测试对比
Get-Item HKLM:\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Bluetooth\Audio\Hfp\AudioGateway
输出结果:
Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Bluetooth\Audio\Hfp Name Property ---- -------- AudioGateway BrsfSupportedFeatures : 1895 Enabled : 1 ProfileVersion : 263 RfcommServerChannel : 1 SdpNetworkSupport : 1 SdpSupportedFeatures : 39
获取文件目增加过滤条件
# 获取test目录所有文件列表 get-item -path E:\test\* # 获取test目录下面后缀名不是png的文件列表 get-item -path E:\test\* -Exclude "*.png" # 获取test目录下面后缀名不是png的文件列表,并且以6开头的文件 get-item -path E:\test\* -Include "6*" -Exclude "*.png"
三、常用参数说明
-Path:参数指定项目的路径,支持通配符。 -Path参数是必需的。可以使用.指定当前目录。 如果需要指定当前位置中的所有项目,可以使用*。
-Include:包含的一个或多个项作为字符串数组,可以使用通配符,简单来说就是根据文件名称进行过滤筛选,参数类型为字符串数组[]。
-Exclude:排除的一个或多个项作为字符串数组,可以使用通配符,简单来说就是根据文件名称进行过滤筛选,参数类型为字符串数组[]。
-Force:该参数用于获取无法以其他方式访问的项,例如隐藏项。针对不同提供程序(文件、注册表、硬链接等等)有不同的实现。
-Stream:文件系统提供程序提供的动态参数。仅在 Windows 上可用。主要是用来实现从文件获取指定的备用数据流,支持通配符,获取所有流也是使用* 号获取。
示例:
get-item -path E:\test\* -filter "1*" -stream *
-Filter:用于指定过滤器以限定-Path参数,筛选器比其他参数更高效。 当 cmdlet 获取对象时,提供程序会应用筛选器,而不是在检索对象后让 PowerShell 筛选对象。
例如:下面这个案例通过filter过滤
PS E:\test> get-item -path E:\test\* 目录: E:\test Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2023/7/8 10:59 02 d----- 2023/7/8 10:59 11 -a---- 2022/11/26 20:14 13595 1.png -a---- 2022/11/26 20:11 8598 11.xlsx -a---- 2022/11/26 20:16 6362 112.xlsx -a---- 2022/11/26 20:14 13595 18888.png -a---- 2022/11/26 20:11 8598 666.xlsx -a---- 2022/7/7 14:11 13595 logo.png PS E:\test> get-item -path E:\test\* -filter "1*" 目录: E:\test Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2023/7/8 10:59 11 -a---- 2022/11/26 20:14 13595 1.png -a---- 2022/11/26 20:11 8598 11.xlsx -a---- 2022/11/26 20:16 6362 112.xlsx -a---- 2022/11/26 20:14 13595 18888.png