这是预期的行为:
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参数应该可以做到这一点。
答案 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的“注意”段落中附加。