PowerShell 是否支持 glob 模式中的否定语法?
Does PowerShell support negation syntax in glob pattern?
在 Linux 中,Bash 支持 negation syntax in glob pattern,例如 [!abc]
除了 a
、b
和 [=13] 之外的一个字符=].
我正试图在 PowerShell 中找到类似的东西。
Supporting Wildcard Characters in Cmdlet Parameters中没有与否定相关的描述。此外,当 test.txt
存在时,我确认了以下内容,这表明不支持 !
作为否定语法,如 Bash.
ls tes[!s].txt
returns 什么都没有。
ls tes[!t].txt
returns test.txt
PowerShell 是否支持 glob 模式中的否定语法?如果没有,您可以分享一些替代方案吗?
不,它没有(因为您正确地推断出这样的功能没有被记录,也没有工作)。
另一种方法是正则表达式,但您必须自己进行过滤,然后:
Get-ChildItem | Where-Object Name -match '^tes[^t]\.txt$'
在 Linux 中,Bash 支持 negation syntax in glob pattern,例如 [!abc]
除了 a
、b
和 [=13] 之外的一个字符=].
我正试图在 PowerShell 中找到类似的东西。
Supporting Wildcard Characters in Cmdlet Parameters中没有与否定相关的描述。此外,当 test.txt
存在时,我确认了以下内容,这表明不支持 !
作为否定语法,如 Bash.
ls tes[!s].txt
returns 什么都没有。ls tes[!t].txt
returnstest.txt
PowerShell 是否支持 glob 模式中的否定语法?如果没有,您可以分享一些替代方案吗?
不,它没有(因为您正确地推断出这样的功能没有被记录,也没有工作)。
另一种方法是正则表达式,但您必须自己进行过滤,然后:
Get-ChildItem | Where-Object Name -match '^tes[^t]\.txt$'