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!!!
4

2 に答える 2

5

-Pathの代わりに-LiteralPathを使用します。例えば:

if ( test-path -literalpath $path ) {
  ....
}

明細書

于 2013-03-11T18:40:25.620 に答える
0

「test-path-literalpath$path」を使ってみてください。

于 2013-03-11T18:42:56.790 に答える