Вы можете сделать следующее:
$content = Get-Content $File
$replace = [regex]::Escape('<EmbeddedResource Include="Properties\licenses.licx" />')
$content = $content -replace $replace
Использование [regex]::Escape()
автоматически создаст для вас экранированную строку регулярного выражения. Поскольку вы хотите заменить совпадение пустой строкой, вы можете просто сделать простой синтаксис string -replace value
и отказаться от замены строки. Только соответствующие строки будут заменены. Несоответствующие строки останутся без изменений. Если вы используете одинарные кавычки вокруг строки регулярного выражения (или любой строки), все, что внутри, будет обрабатываться как литеральная строка, что упрощает захват внутренних кавычек.
Кроме того, технически не нужно устанавливать Get-Content
к переменной в первую очередь. Вся команда может быть LHS -replace
.
$content = (Get-Content $File) -replace $replace