Я пытаюсь заменить предложение в .config файле с помощью powershell.
${c:Web.config} = ${c:Web.config} -replace
'$BASE_PATH
$\\$Test_TYPE' Test\bin' $\\WebTest.dll', 'c:\program Files\example\webtest.dll'
Каждый раз я пытаюсь выполнить вышеупомянутый код, который я получаю
"Шаблон недействительного регулярного выражения: $BASE_PATH$\\$Test_TYPE$Test\bin\\\WebTest.dll" в c:\tests\runtesting.ps1 - замена <<<<$BASE_PATH$\\$Test_TYPE$Test\bin\\\WebTest.dll
Если я не буду использовать обратную галочку, то знаки доллара исчезнут и некоторый текст.
Как я передал бы знаки доллара в строке к - замена?
Это о том, как сбежать регулярные выражения . Каждый специальный символ (особый в отношении регулярных выражений), такой как $
, должен быть экранирован с помощью \
'$A$B()[].?etc' -replace '\$|\(|\)|\[|\]|\.|\?','x'
'$BASE_PATH$\Test\bin$Test_TYPE$\WebTest.dll' -replace '\$BASE_PATH\$\\Test\\bin\$Test_TYPE\$\\WebTest.dll','something'
Обратный апостроф будет использоваться, когда регулярное выражение будет таким:
'$A$B' -replace "\`$",'x'
Для передачи:
$BASE_PATH$\Test\bin\$Test_TYPE$\WebTest.dll
Изменить на:
`"\`$BASE_PATH\`$\\Test\\bin\\\`$Test_TYPE\`$\\WebTest.dll"`
Логика: