这是一种预期的行为:
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参数应该这样做.
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.
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |