Я пытаюсь разработать скрипт, который заменит определенные токены во входном тексте новыми тестовыми строками. С помощью this, я разработал следующее:
$repl = @{}
$repl.add('SVN',"myworkspace\BRANCH71")
$repl.add('REL',"72")
$string = 'C:\users\rojomoke\filesREL\SVN\blah.txt'
foreach ($h in $repl.getenumerator())
{
write-host "Line: $($h.name): $($h.value)"
$string = $string -replace "$($h.name)","$($h.value)"
write-host $string
}
, который производит требуемый C:\users\rojomoke\files72\myworkspace\BRANCH71\blah.txt
.
Однако, я стараюсь использовать маркеры, отмеченные знаком, начиная с знака $
. Если в приведенном выше примере я использую токены $REL
и $SVN
, то никакой замены не происходит, а $string
остается C:\users\rojomoke\files$REL\$SVN\blah.txt
.
Я предполагаю, что я бегу от расширения регулярного выражения или чего-то еще, но я не вижу, как это сделать. Можно ли процитировать знак доллара, чтобы это работало правильно?
Я использую Powershell версии 3.