如何在名称中包含方括号的目录上使用 Test-Path

Dav*_*vid 3 powershell

我有一系列在名称中带有方括号的目录。由于某些莫名其妙的原因,当我对这些目录运行该Test-Path命令时会返回该命令$false,但$true如果我对名称中没有方括号的目录运行相同的命令则会返回。

目录如下所示:

[s]4343224D
[s]50AF43AF
Run Code Online (Sandbox Code Playgroud)

我正在运行的命令是:

Test-Path [s]50AF43AF
Run Code Online (Sandbox Code Playgroud)

我也试过:

Test-Path `[s`]50AF43AF
Run Code Online (Sandbox Code Playgroud)

但这也会返回 $false。

有谁知道Test-Path当确实存在该名称的目录时如何返回 true ?

Mar*_*agg 7

您可以-LiteralPath为此使用参数:

Test-Path -LiteralPath '[s]50AF43AF'
Run Code Online (Sandbox Code Playgroud)

如果您处理多个路径,这可能比添加反引号更好:

'[s]4343224D','[s]50AF43AF' | ForEach-Object { Test-Path -LiteralPath $_ }
Run Code Online (Sandbox Code Playgroud)