gpt4 book ai didi

regex - 替换 ini 文件中的 block 文本

转载 作者:行者123 更新时间:2023-12-04 08:33:00 25 4
gpt4 key购买 nike

我需要替换 .ini 文件中的块文本。
我的脚本是:

$oFile = "$Env:ProgramFiles (x86)\Advanced Monitoring Agent\Settings.ini
$oSettings = Get-Content -Path $oFile
$oPattern = '[PATCHMANAGEMENT](.*?)[SITECONCENTRATOR]'
$oTextToReplace = [regex]::match($oSettings , $oPattern).Groups[1].Value
$oNewFile = $oSettings -replace $oTextToReplace.ToString, "][" | out-file -FilePath $Env:ProgramFiles
(x86)\Advanced Monitoring Agent\newSettings.ini
但它不起作用。你能帮我解决这个问题吗?
抱歉我的英语不好。
你好!

最佳答案

首先,您应该将文件作为单个变量读入:

$oSettings = Get-Content -Path $oFile -Raw
接下来,使用 DOTALL,或 (?s)模式开始处的内联修饰符,使 .跨行匹配。还有,逃跑 [在字符类之外使其匹配文字 [ , 否则,它表示一个字符类开始。然后,附上您要保留的标签,而不是标签之间的文本:
$oPattern = '(?s)(\[PATCHMANAGEMENT]).*?(\[SITECONCENTRATOR])'
regex demo (只是它是如何工作的)。
剩下的只是 -replace :
$oNewFile = $oSettings -replace $oPattern, '$1$2' |
out-file -FilePath "${Env:ProgramFiles(x86)}\Advanced Monitoring Agent\newSettings.ini"

关于regex - 替换 ini 文件中的 block 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64936859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com