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

时间:2019-01-05 11:19:35

标签: powershell

这是预期的行为:

LPStr

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

PS C:\> Test-Path -Path C:\MyFolder\ -IsValid -PathType Container
True
PS C:\>

根据官方文档:

“叶。不包含其他元素的元素,例如文件。”

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

是错误还是我错过了什么?

注意:目标是测试尚不存在的文件的语法。而IsValid参数应该可以做到这一点。

2 个答案:

答案 0 :(得分:7)

IsValid是这里的首要因素

  

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

PS C:\> Test-Path -Path C:\MyFolder\ -PathType Leaf
False
PS C:\>

应表现正常。 (只要该路径确实存在)

IsValid检查 Path 语法是否有效。不管它是文件还是文件夹,无论它是否存在。

如果删除IsValid并调用不存在的路径,则无论它是叶子还是容器,您都将得到 False

答案 1 :(得分:0)

根据Github issue #8607中的Microsoft:

  

-IsValid -PathType 应该位于单独的参数集中

此引用是重大更改的参考,并且 -PathType 参数已在official documentation的“注意”段落中附加。