首页 > 解决方案 > 具有特殊字符的 Powershell 句柄变量(左括号)

问题描述

我有一个脚本,其中比较了两个变量,可能会发生一个变量包含左括号而没有关闭的情况,就像在示例中一样。然后发生 System.ArgumentException:“......没有足够的右括号......”

$test1="Testtext"
$test2="Testtext (3x(2x0,25"
if(!($test1 -match $test2)){ "test"}

我该如何处理?

标签: powershellvariablescharacterargumentexception

解决方案


-match执行正则表达式匹配 - 用于Regex.Escape()自动转义逐字模式字符串中的任何可转义序列:

$text = 'Text with (parens)'
$pattern = '(par'

if($text -match [regex]::Escape($pattern)){
  "It worked!"
}

推荐阅读