使用批处理文件修改找到的文本

时间:2017-09-12 16:07:58

标签: windows batch-file text text-files

首先,我正在寻找与此不同的东西:

我的目的是修改

带有"fillColor="#242838"

fillColor="mycolor"

但是,此语句中的十六进制颜色可以是

"fillColor="#221231""fillColor="#213123"

那我怎么能找到&使用Windows批处理文件编辑文本。

修改:我为此尝试了JREPL.BAT正则表达式查找/替换实用工具。

jrepl "android:fillColor=(.*?)" "fillColor="mycolor" /x /f myfile.xml /o -

但是,从"转义不适用于此行。

我已经尝试""\"^"他们无法帮助我逃脱"字符。

1 个答案:

答案 0 :(得分:1)

可以使用JREPL.BAT完成任务,例如使用以下命令行:

jrepl.bat "(android:fillColor=\x22#)[0-9A-Fa-f]+" "$1FF0000" /f myfile.xml /o -

搜索字符串的说明:

( ... ) ...标记组。该组找到的字符串在替换字符串中使用表达式$1进行反向引用。

\x22 ...用十六进制代码值指定的双引号字符。

[0-9A-Fa-f]+ ...找到任何十六进制数字一次或多次。

搜索表达式中的所有其他字符都是文字解释字符,可在文件中找到。

替换字符串的说明:

$1 ...对搜索正则表达式中标记组找到的固定字符串的反向引用。

FF0000 ...新颜色值,此处为红色(RGB)。

此替换任务必须使用标记组,因为 JREPL.BAT 正在使用,它不支持look-behind仅匹配要替换的颜色值上下文。

在批处理文件中使用时,必须使用命令 CALL 调用此命令行:

call jrepl.bat "(android:fillColor=\x22#)[0-9A-Fa-f]+" "$1FF0000" /f myfile.xml /o -