Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Поиск *.ini на диске с последующим редактированием строк (http://forum.oszone.net/showthread.php?t=210165)

andycollens 30-06-2011 05:41 1703999

Поиск *.ini на диске с последующим редактированием строк
 
Прошу помощи.

Имеется файл conf.ini где-то на диске C. Предполагается что такой файл в единственном экземпляре,
но может находиться в разных местах у разных пользователей. В этом файле имеются строки вида:
  • server=10.10.10.10
  • login=user1
  • pass=1234

Требуется найти этот файл и изменить строки на:
  • server=50.50.50.50
  • login=user5
  • pass=8888

На форуме есть похожие задачи, но совместить замену строк с поиском файла на диске ввиду незнания не выходит.
Заранее спасибо.

McLotos 30-06-2011 10:45 1704132

Я бы использовал что-то типа Plugin Shell, а вообще лучше конечно Вам прогуляться по гуглу в поисках описаний команд

amel27 30-06-2011 11:21 1704159

andycollens, как-то так:
Код:

for /f "delims=" %%a in ('dir/b/s/a-d C:\conf.ini') do @(type NUL>"%TEMP%\conf.ini"
 for /f "tokens=1* delims=]" %%b in ('^<"%%a" find/n /v ""') do @(set "$c=%%c"
 SetLocal EnableDelayedExpansion
  if /i "!$c!"=="server=10.10.10.10" set "$c=server=50.50.50.50"
  if /i "!$c!"=="login=user1" set "$c=login=user5"
  if /i "!$c!"=="pass=1234" set "$c=pass=8888"
  echo:!$c!
 EndLocal)>>"%TEMP%\conf.ini"
 move/y "%TEMP%\conf.ini" "%%~dpa"
)


andycollens 30-06-2011 11:43 1704177

То что надо. Спасибо!


Время: 16:14.

Время: 16:14.
© OSzone.net 2001-