Regex PowerShell 2.0字符串问题和获取内容替换

Regex PowerShell 2.0字符串问题和获取内容替换,regex,string,powershell,Regex,String,Powershell,我想知道是否有人可以添加到这个问题,我与反斜杠 不幸的是,我目前的工作环境是在PowerShell 2.0上,谁知道他们什么时候会升级到4.0。所以我在PowerShell 4.0的其他地方工作时写的一些东西在2.0中不起作用 在Powershell 4.0中,这将不会出现任何问题。但不是在2.0中 (gc C:\Temp\Test.reg)。替换(“HKEY_用户\$PROFILENAME”,“HKEY_当前用户”)| sc C:\Temp\Test.reg 所以我试过这个,在2.0中写这个的

我想知道是否有人可以添加到这个问题,我与反斜杠

不幸的是,我目前的工作环境是在PowerShell 2.0上,谁知道他们什么时候会升级到4.0。所以我在PowerShell 4.0的其他地方工作时写的一些东西在2.0中不起作用

在Powershell 4.0中,这将不会出现任何问题。但不是在2.0中

(gc C:\Temp\Test.reg)。替换(“HKEY_用户\$PROFILENAME”,“HKEY_当前用户”)| sc C:\Temp\Test.reg

所以我试过这个,在2.0中写这个的时候,我没有运气

(gc C:\Temp\Test.reg)foreach{$\替换“HKEY_用户\$PROFILENAME”,“HKEY_当前用户”}sc C:\Temp\Test.reg”)

只要我没有一个“\”就行了。脚本将其视为system.object,并且不会触及反斜杠。是否有办法将“HKEY_用户\$PROFILENAME”替换为“HKEY_当前用户”


这令人沮丧……

反斜杠是powershell中正则表达式中的转义字符。在正则表达式部分使用两倍的反斜杠


(gc C:\Temp\Test.reg).替换(“HKEY_用户\\$PROFILENAME”,“HKEY_当前用户”)| sc C:\Temp\Test.reg

没关系,我想出了一个方法。我不得不用两个反斜杠,然后就成功了。对不起,伙计们。(gc C:\Temp\Test.reg)foreach{$\替换“HKEY_用户\\$PROFILENAME”,“HKEY_当前用户”}sc C:\Temp\Test.reg”)