Я новичок в скриптах powershell. Я попытался разработать скрипт с использованием powershell major версии 5. Цель моего скрипта - заменить несколько строковых литералов в файле шаблона, с некоторыми строками. Обратите внимание, что один из строковых литералов заменяется содержимым файла.
$ReleaseScript = Get-Content $SourceFile -Raw
(Get-Content $ChangeSetTemplatefile -Raw) |
ForEach-Object {
$_ -replace '<insert_script_here>', $ReleaseScript `
-replace '<username>' , $UserName
}
| Set-Content $CSDestinationFile"
Вышеупомянутая замена отлично работает, за исключением случаев, когда содержимое файла в $ ReleaseScript имеет значение $ _. Есть ли способ иметь escape-символ, чтобы не заменять заменяющее содержимое строки или каким-либо другим способом достичь цели?
Используйте '' $$ в * одиночный * -quoted заменить строку. См. [Regex reference] (https://msdn.microsoft.com/en-us/library/az24scfc (v = vs.110) .aspx # substitutions). Я не уверен, что полностью понимаю проблему, поэтому я не отправляю это как ответ. – wOxxOm
Er, на самом деле, для замены строковых литералов используется метод замены строки: '$ _. Replace ('string1', 'string2')' – wOxxOm