Windows 何时或为什么Get ChildItem生成与筛选器不匹配的文件?
在某些情况下,为什么Powershell中的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长度名称 ---- -
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搜索表达式的向后兼容性有关。