I am in the process of converting thousands of lines of batch code into PowerShell. I'm using regex to help with this process. The problem is part of the code is:
$`$2
When replaced it just shows $2
and doesn't expand out the variable. I've also used single quotes for the second portion of replace instead of escaping the variables, same result.
$origString = @'
IF /I "%OPERATINGSYSTEM:~0,6%"=="WIN864" SET CACHE_OS=WIN864
...many more lines of batch code
'@
$replacedString = $origString -replace "(IF /I `"%)(.+)(:.+%`"==`")(.+`")(.+)","if ( $`$2 -match `"^`$4 ) {`$5 }"
$replacedString