我正在将成千上万行的批处理代码转换为PowerShell。我正在使用正则表达式来帮助完成这个过程。问题是部分代码是:
$`$2
当更换它只是显示$2
,不会展开了变量。我也使用单引号替换第二部分,而不是转义变量,结果相同。
$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
只是为了完整性起见,只要您发布字符串处理的问题,这将有助于每个人,如果你能在操作前给文字的例子(你有哪些)**和**在操作后字符串应该是什么样子。 – EBGreen 2012-02-22 19:44:47
好主意。下次会做。谢谢。 – Vippy 2012-02-22 22:21:29