0

我有两个要求来实现这些,如下所示。

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)

我怎样才能做到这一点?

你能帮帮我吗?

4

2 回答 2

0

对于问题 1,这应该有效。

@echo off
for /R %%a in (*.dep-bui.xml) do (
for /f "delims=." %%b in ("%%~nxa") do echo "%%b"
)
于 2013-05-22T11:06:52.517 回答
0

(Q2)的建议:

sed -i.bak "s/^\(httpconnector_port_httpConnector_java\)\W.*/\1=9090/" "%propertiesFile%"

为 Windows 下载 sed

于 2013-05-22T11:12:37.707 回答