我有两个要求来达到以下目的。
1)我在一个文件夹中有几个.xml文件。 文件名类似于abc.bcd.efgh.dep-bui.xml,cdefgh.abc.efgh.dep-bui.xml,wxyzs.cdrf.cba.dep-bui.xml 我使用以下代码
从文件夹路径获得了abc.bcd.efgh.dep-bui.xml , cdefgh.abc.efgh.dep-bui.xml , wxyzs.cdrf.cba.dep-bui.xml
这样的文件名
for /R %%K in (*.dep-bui.xml) do (
echo Enter the port number for the service %%~nK
我希望从文件名的开头到第一次出现。 (文件名的第一个元素) 显然它应该像上面的文件名中的abc,cdefgh,wxyzs。 请考虑文件名的第一个元素是不是固定长度。 你能帮我解决一下如何实现吗?
2)
有一个.properties文件(名称=值对)
我可以从该属性文件中读取每一行。
实际上有一种情况,比如使用正则表达式检查属性名称的一部分是否存在。
如果属性存在,我们需要修改该特定属性的值而不重写文件。
显然,
.properties文件中有一个属性httpconnector_port_httpConnector_java=9090
。
我想检查httpconnector_port _ *。
(Because httpconnector_port_ is constant and httpConnector_java varies from one project to other project.)
如果它存在,我想要更改该属性的值。(在这种情况下为9090)
我怎样才能实现这一目标?
你能帮帮我吗?答案 0 :(得分:0)
对于问题1,这应该有用。
@echo off
for /R %%a in (*.dep-bui.xml) do (
for /f "delims=." %%b in ("%%~nxa") do echo "%%b"
)
答案 1 :(得分:0)
sed -i.bak "s/^\(httpconnector_port_httpConnector_java\)\W.*/\1=9090/" "%propertiesFile%"