测试路径不正确的文件验证

Luk*_*uke 0 powershell

这是一种预期的行为:

PS C:\> Test-Path -Path C:\MyFolder\ -IsValid -PathType Container
True
PS C:\>
Run Code Online (Sandbox Code Playgroud)

但是,这似乎是不正确的:

PS C:\> Test-Path -Path C:\MyFolder\ -IsValid -PathType Leaf
True
PS C:\>
Run Code Online (Sandbox Code Playgroud)

根据官方文件:

"Leaf.不包含其他元素的元素,例如文件."

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/test-path?view=powershell-6

这是一个错误还是我错过了什么?

注意:目标是测试尚不存在的文件的语法.并且IsValid参数应该这样做.

Nko*_*osi 7

IsValid这是最重要的因素

IsValid:表示此cmdlet测试路径的语法,而不管路径的元素是否存在.

PS C:\> Test-Path -Path C:\MyFolder\ -PathType Leaf
False
PS C:\>
Run Code Online (Sandbox Code Playgroud)

应该按预期行事.(如果路径实际存在)

IsValid检查Path语法是否有效.它不关心它是文件还是文件夹,如果它存在或不存在.

如果删除IsValid并调用不存在的路径,则无论是叶子还是容器,都将返回False.