Windows 何时或为什么Get ChildItem生成与筛选器不匹配的文件?

Windows 何时或为什么Get ChildItem生成与筛选器不匹配的文件?,windows,powershell,Windows,Powershell,在某些情况下,为什么Powershell中的Get ChildItem返回的文件与我的筛选器不匹配 PS C:\Users\JairoAndres>Get ChildItem-路径C:\Hyper-V\Disks \-过滤器“*.vh” PS C:\Users\JairoAndres>Get ChildItem-路径C:\Hyper-V\Disks \-过滤器“*.vhd” 目录:C:\Hyper-V\Disks 模式LastWriteTime长度名称 ---- -

在某些情况下,为什么Powershell中的Get ChildItem返回的文件与我的筛选器不匹配

PS C:\Users\JairoAndres>Get ChildItem-路径C:\Hyper-V\Disks \-过滤器“*.vh”
PS C:\Users\JairoAndres>Get ChildItem-路径C:\Hyper-V\Disks \-过滤器“*.vhd”
目录:C:\Hyper-V\Disks
模式LastWriteTime长度名称
----                -------------         ------ ----
-2019年7月18日上午10:17。M75497472 DockerDesktop.vhdx
-2019年7月18日下午3:10。M64361594880 WinDev.vhdx

查看那些文件“.vhdx”不匹配
*.vhd
。考虑到当我使用像
*.vh
这样的过滤器时,没有文件产生了引用这个答案的关键部分--“另一个要记住的问题:ls-filter
*.txt
实际上得到了像
*.txt*
这样的文件”。因此,在您的情况下,
*.vhd
=>
*.vhd*
,并包括您的
*.vhdx
文件。不幸的是,-filter也匹配可以在
cmd/c dir/x
@mclayton中看到的文件的短版本,这不是真的,这就是为什么我举了一个
*.vh
不产生任何结果的例子。@jairoandresvelascomero-如果扩展名中有3个字符(例如
*.vhd
),它将其视为末尾有一个通配符(例如
*.vhd*
),那么
*.vhd
匹配
*.vhd
,然而,如果只有两个字符,则按字面意思处理,即
*.vh
搜索
*.vh
,但与
*.vhdx
不匹配。根据我链接到的另一个答案,这与MSDOS搜索表达式的向后兼容性有关。引用这个答案的关键部分--“需要记住的另一个问题是:ls-Filter
*.txt
实际上会获取类似
*.txt*
的文件”。因此,在您的情况下,
*.vhd
=>
*.vhd*
,并包括您的
*.vhdx
文件。不幸的是,-filter也匹配可以在
cmd/c dir/x
@mclayton中看到的文件的短版本,这不是真的,这就是为什么我举了一个
*.vh
不产生任何结果的例子。@jairoandresvelascomero-如果扩展名中有3个字符(例如
*.vhd
),它将其视为末尾有一个通配符(例如
*.vhd*
),那么
*.vhd
匹配
*.vhd
,然而,如果只有两个字符,则按字面意思处理,即
*.vh
搜索
*.vh
,但与
*.vhdx
不匹配。根据我链接到的另一个答案,这与MSDOS搜索表达式的向后兼容性有关。