关于Powershell脚本的正则表达式:替换直到行尾

时间:2016-05-09 09:24:20

标签: regex powershell replace

我有一些配置文件结构如下:

  

PATH_KEY = C:\\ DIR \\项目

     

富=酒吧

我想编写一个小脚本,用当前文件夹替换某个键。 所以基本上我试图替换" PATH_KEY = ..."使用" PATH_KEY = $ PSScriptRoot"

到目前为止我的代码:

$cfgs = Get-Childitem $PSScriptRoot -Filter *name*.cfg

foreach ($cfg in $cfgs) 
{
  (  Get-Content $cfg) -replace 'PATH_KEY=.*?\n','PATH_KEY=$PSScriptRoot' | Set-Content $cfg
}

但正则表达式将所有东西都拿到行尾并不起作用。 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

您可以使用

'(?m)^PATH_KEY=.*' 

甚至

'PATH_KEY=.*'

请注意,替换中的$应加倍以表示单个$,但除非后面有数字,否则不会出现问题。

参见演示:

enter image description here