为什么Powershell测试路径-Isvalid总是返回true

为什么Powershell测试路径-Isvalid总是返回true,powershell,Powershell,根据文档-IsValid应该检查路径的语法是否正确。我为测试路径输入的任何内容都会返回true 指示此cmdlet测试路径的语法,而不考虑 路径的元素是否存在。如果出现以下情况,此cmdlet将返回$True 路径语法有效,如果无效,则为$False 看起来一切都很顺利,但事实并非如此。-IsValid只进行语法检查。语法没有问题:sadfasdasdfasdf很可能是当前目录中的一个子目录 例如,以下路径使用了不正确的语法,因此无效: PS C:\> Test-Path "foo>

根据文档-IsValid应该检查路径的语法是否正确。我为测试路径输入的任何内容都会返回true

指示此cmdlet测试路径的语法,而不考虑 路径的元素是否存在。如果出现以下情况,此cmdlet将返回$True 路径语法有效,如果无效,则为$False


看起来一切都很顺利,但事实并非如此。-IsValid只进行语法检查。语法没有问题:sadfasdasdfasdf很可能是当前目录中的一个子目录

例如,以下路径使用了不正确的语法,因此无效:

PS C:\> Test-Path "foo>bar" -IsValid # Redirection in path
False
PS C:\> Test-Path "foo:bar" -IsValid # Edge case, HKLM:USER would be valid
False
PS C:\> Test-Path "foo|bar" -IsValid # Pipe in path
False

看起来一切都很顺利,但事实并非如此。-IsValid只进行语法检查。语法没有问题:sadfasdasdfasdf很可能是当前目录中的一个子目录

例如,以下路径使用了不正确的语法,因此无效:

PS C:\> Test-Path "foo>bar" -IsValid # Redirection in path
False
PS C:\> Test-Path "foo:bar" -IsValid # Edge case, HKLM:USER would be valid
False
PS C:\> Test-Path "foo|bar" -IsValid # Pipe in path
False