2013-05-22 1 views
0

У меня есть два требования для достижения следующих целей.batch- необходимо получить первый элемент имени файла и проверить часть имени свойства existance

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

Редактировать ваше сообщение, чтобы показать линии от 2 реальных файлов. 1 с Java в нем и без него. –

+0

'без перезаписи файла' ?? Вы не можете изменить файл, не переписывая его. – foxidrive

ответ

0

Для вопроса 1 это должно работать.

@echo off 
for /R %%a in (*.dep-bui.xml) do (
for /f "delims=." %%b in ("%%~nxa") do echo "%%b" 
) 
+0

Спасибо foxidrive, он отлично сработал ... еще раз спасибо – Thiru

0

предложение с (Q2):

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

download sed for Windows

+0

Мы не можем редактировать только значение по пакетному сценарию без перезаписи файла, если нет, тогда мы сможем это сделать, переписав файл? – Thiru

+0

Да, вы можете: посмотреть на [Aacini] (http://stackoverflow.com/a/16469670/2098699) – Endoro

Смежные вопросы