In meinem PowerShell-Skript führe ich Select-String über eine Reihe von Dateien aus und suche nach einer Zeichenfolge, die über eine Variable ($id) übergeben wird:
foreach ($file in (ls "path\to\files")) {
$found = $false
$found = Select-String -Path $file $id -Quiet
if ($found) {
break
}
}
Leider enthält die Variable $id manchmal Dinge wie " \C " oder " \T ", die Select-String als Escape-Sequenzen zu interpretieren versucht. Dies sind keine gültigen Escape-Sequenzen, so dass Select-String einen Fehler ausgibt. Sie sind nicht als Escape-Sequenzen gedacht (z. B. könnte es sich um einen Teil eines Dateipfads wie " C:\Test "), wie kann ich also verhindern, dass PowerShell/Select-String sie als solche interpretiert? Ich habe versucht, Klammern um $id herum zu verwenden, ohne Erfolg.