我试图以递归方式浏览文件夹结构并更新一堆pom.xml文件。我只想更新我的版本号,所以我尽量做到尽可能准确。我想改变的是:
<version>5.1.1</version>
到
<version>5.2.0</version>
我试图包含版本标签,以确保我不会替换任何相同版本号可能出现的评论或依赖项。
我认为像'&lt;,&gt;这样的字符或/'造成问题。
我没有太多经验在命令行上转义这样的字符,所以任何帮助都表示赞赏。
我在Windows 7机器上,但安装了Git Bash和Cygwin。
答案 0 :(得分:2)
我要么使用名为&#34; fart.exe的工具&#34;为此 - 如果更换很简单。 https://sourceforge.net/projects/fart-it/
如果我需要正则表达式,我使用电源外壳。 下面是一个示例(批处理文件和power-shell的混合),它替换了所有XML文件中的版本字符串:
[replace.bat]:
SET version=1.2.3
for /r %%x in (*.xml) do (
powershell -Command "& {(Get-Content '%%x') | Foreach-Object { $_ -replace '(''version''\s?\:\s?'')(\d*\.\d*\.\d*)('')', '${1}%version%${3}' } | Set-Content '%%x'}"
)