【发布时间】:2010-10-06 09:07:25
【问题描述】:
在我的 PowerShell 脚本中,我在多个文件上运行 Select-String,寻找通过变量 ($id) 传递到其中的字符串:
foreach ($file in (ls "path\to\files")) {
$found = $false
$found = Select-String -Path $file $id -Quiet
if ($found) {
break
}
}
不幸的是,$id 变量有时类似于“\C”或“\T”,Select-String 试图将其解释为转义序列。这些不是有效的转义序列,因此 Select-String 会引发错误。它们不打算成为转义序列(例如,它可能是文件路径的一部分,例如“C:\Test”),那么如何防止 PowerShell/Select-String 将它们解释为这样呢?我试过在 $id 周围使用括号,但没有成功。
【问题讨论】:
标签: regex powershell escaping