PDA

Показать полную графическую версию : [решено] Поиск *.ini на диске с последующим редактированием строк


andycollens
30-06-2011, 05:41
Прошу помощи.

Имеется файл 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
Я бы использовал что-то типа Plugin Shell, а вообще лучше конечно Вам прогуляться по гуглу в поисках описаний команд (http://www.google.ru/#sclient=psy&hl=ru&newwindow=1&site=&source=hp&q=%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B+cmd&aq=f&aqi=&aql=&oq=&pbx=1&fp=620435af6402ae64&biw=1024&bih=653&safe=active)

amel27
30-06-2011, 11:21
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
То что надо. Спасибо!




© OSzone.net 2001-2012