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

时间:2017-10-03 07:10:02

标签: powershell

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

目录如下所示:

[s]4343224D
[s]50AF43AF

我正在运行的命令是:

Test-Path [s]50AF43AF

我也尝试过:

Test-Path `[s`]50AF43AF

但这也会返回$ false。

有没有人知道如果确实存在该名称的目录,可能会让Test-Path返回true?

2 个答案:

答案 0 :(得分:2)

您可以使用-LiteralPath参数:

Test-Path -LiteralPath '[s]50AF43AF'

如果您正在处理多条路径,那么添加反引号可能是更好的选择:

'[s]4343224D','[s]50AF43AF' | ForEach-Object { Test-Path -LiteralPath $_ }

答案 1 :(得分:1)

这似乎有效:

Test-Path '`[s`]50AF43AF'