Powershell 使用类运算符格式化包含用于比较的特殊字符的变量

Powershell 使用类运算符格式化包含用于比较的特殊字符的变量,powershell,comparison,powercli,Powershell,Comparison,Powercli,我遇到了一个问题,我正在使用like运算符比较一些变量,其中包含方括号和圆括号 我使用的是VMware PowerCLI插件(应该是无关的),我的表达式如下- Get-VM | Where { (Get-CDDrive $_).ISOPath -like "*$ISOLocation*" } 当$ISOLocation的值为[datastore1(13)]iso/rhel6.4kickstart.iso时,无法识别字符串之间的相似性。我相信这是因为这些特殊的角色。如何在前面提到的命令之前转义这

我遇到了一个问题,我正在使用like运算符比较一些变量,其中包含方括号和圆括号

我使用的是VMware PowerCLI插件(应该是无关的),我的表达式如下-

Get-VM | Where { (Get-CDDrive $_).ISOPath -like "*$ISOLocation*" }

$ISOLocation
的值为
[datastore1(13)]iso/rhel6.4kickstart.iso
时,无法识别字符串之间的相似性。我相信这是因为这些特殊的角色。如何在前面提到的命令之前转义这些字符,或者如何更好地进行比较?

就括号而言,您已经在旧的Technet Windows中获得了Microsoft官方答案

在您的情况下,请尝试:

``[datastore1 (13)``] iso/rhel6.4_kickstart.iso

如果知道整个路径,为什么要使用
-like
?@carlpett,因为路径可能完全不同,比如文件名的一部分。谢谢,在变量上使用
-replace
,这应该是可行的。