【发布时间】:2012-03-13 04:32:24
【问题描述】:
我正在将数千行批处理代码转换为 PowerShell。我正在使用正则表达式来帮助完成这个过程。问题是部分代码是:
$`$2
替换时它只显示$2 并且不会扩展变量。我还在 replace 的第二部分使用了单引号,而不是转义变量,结果相同。
$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
【问题讨论】:
-
为了完整起见,每当您发布字符串操作问题时,如果您可以在操作之前给出一个文本示例(您拥有)和什么,这将对每个人都有帮助字符串应该看起来像操作后的样子。
-
好主意。下次会做。谢谢。
标签: regex powershell replace dollar-sign