在PowerShell中自动转义动态字符串

3

我有一个字符串,它将从第三方应用程序动态生成

$somePath = "D:\some\path\name.of - my file [20_32_21].mp4"

我需要能够在一个函数中验证这个路径。
$somePath = "D:\some\path\name.of - my file [20_32_21].mp4"

Function ValidatePath{
    Param($path)
    if(Test-Path $path){
        Write-Host "Worked"
    } else {
        Write-Host "Didn't Work"
    }
}

ValidatePath $somePath 
# DIDN'T WORK

问题在于方括号无法通过验证。如何自动转义方括号以验证文件?
# Path needs to look like this
$somePath = "D:\some\path\name.of - my file ``[20_32_21``].mp4"
ValidatePath $somePath 
# WORKED!!!
2个回答

5
请使用-LiteralPath而不是-Path; 例如:
if ( test-path -literalpath $path ) {
  ....
}

比尔


简单而美丽。PS的一些语义似乎在你真正看到它之前是难以捉摸的。我不知道那一点。 - Chase Florell

0
你可以尝试使用 "test-path -literalpath $path" 吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接