У меня есть скрипт powershell, выполняемый для проверки различий в коммитах между двумя git ветвями. Вот что я получаю из выражения git:
$result = Invoke-Expression "& git rev-list --left-right --count origin/$TargetBranch...origin/$SourceBranch 2>&1"
К сожалению, я обнаружил, что когда $SourceBranch
содержит '
символ, он выдает
[ошибка ] В строке: 1 символ: 143 + ..._ move_to_record_icon_does't_respond 2> & 1
В строке отсутствует терминатор: '.
Я реализовал экранирование специальных символов, таких как это: [System.Text.RegularExpressions.Regex]::Escape($SourceBranch)
затем $SourceBranch.replace('\','`')
Но он не экранирует символ '
, его помещение в replace("'","`'")
также не работает.
Используется Powershell 5.0.