为什么Powershell Test-Path -Isvalid总是返回true

时间:2017-11-27 07:24:14

标签: powershell

基于文档-IsValid应该检查路径的语法是否正确。我为Test-Path提供的任何内容都会返回true

  

表示此cmdlet测试路径的语法,无论如何   是否存在路径的元素。如果,此cmdlet返回$ True   路径语法有效,如果不是

,则为$ False
$val = Test-Path "sadfasdasdfasdf" -IsValid

1 个答案:

答案 0 :(得分:2)

看起来一切都会好像,但事实并非如此。 -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