我正在尝试使用批处理脚本编辑配置文件。我环顾四周,我相信 powershell 是通往这里的路。我对 powershell 的经验为零,所以我猜测语法是导致我出现问题的原因。
这是文件现在的样子(此部分位于文件的中间)
<!--add key="MinNumCycles" value="25"/-->
<!--add key="MaxNumCycles" value="40"/-->
这是我想要的样子
<!--add key="MinNumCycles" value="25"/-->
<!--add key="MaxNumCycles" value="40"/-->
<!--RerunMode: 1 write to DB, 2 write to DB and add to RUN export/-->
<add key="RerunMode" value="0"/>
这是我要在我需要帮助的批处理文件中执行的操作
SET pattern=<!--add key="MaxNumCycles" value="40"/-->
SET textToAdd1=<!--RerunMode: 1 write to DB, 2 write to DB and add to RUN export/-->
SET textToAdd2=<add key="RerunMode" value="0"/>
SET filename=Software.exe.config
powershell -Command "(gc %filename%) -replace "%pattern%", "$&`n`n%textToAdd1%"'n"%textToAdd2%" | sc %filename%"
$pattern='<!--add key="MaxNumCycles" value="40"/-->'
$textToAdd = $pattern + '
<!--RerunMode: 1 write to DB, 2 write to DB and add to RUN export/-->
<add key="RerunMode" value="0"/>'
$filename = "Software.exe.config"
([IO.File]::ReadAllText($filename).Replace($pattern,$textToAdd) | Set-Content $filename -Force
这是我个人在所有 Powershell 中复制批处理文件的方法。
.Replace()
,它只会查找精确的字符串。$textToAdd
包含完全格式化的最终结果,包括我们正在搜索的字符串(开始和结束结果都有字符串,这允许我们将其保留在那里)以及连接的加法。根据您的描述,字符串标记位于日志的中间,因此这将允许它仅进行这些更新并完整地重新保存日志。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句