3 / 3 / 0
Регистрация: 15.07.2013
Сообщений: 176
1

Изменение в .ini файле только некоторых строк

10.11.2014, 11:57. Показов 7316. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть у нас на рабочих машина .ini файл. Нужно изменить только некоторые строки. Остальные строки оставить такими какие они стоят. У различных машин разные. Делал как написано тут http://www.vr-online.ru/conten... ndows-5770, но в командной строке пишет не найден файл.
Хотел накатить груповой политикой готовый через copy/xcopy, но нельзя, будет сбивать уже настроенные изменения.
Сам .ini файл:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
[Audio]
MicVolume=50
HeadsetVolume=50
Mute=0
Mic='Устройство по умолчанию'
Headset='Устройство по умолчанию'
SpeakerMic='Устройство по умолчанию'
SpeakerHeadset='Устройство по умолчанию'
Ring='Устройство по умолчанию'
Tones='Устройство по умолчанию'
Buffers=5
MinJitter=50
MaxJitter=150
Echocanceller=0
OutgoingAlertingMedia=1
PlayBackRing=1
CodecG711A=0
CodecG711u=1
CodecG729=2
CodecG723=3
CodecGSM=4
[Main]
Number=1127
Name=2216784
Auto=0
IconPlace=0
CloseAction=0
NoCloseAlerting=0
Operator=0
Signal=0
Gateway=172.19.252.53:9100
Interface=172.19.253.34
Port=5060
NAT=
NATMode=0
STUN=
[USB]
Mode=0
Melody=0
DriverMode=0
AutoTray=0
Reconnect=0
[H323]
AlertSplash=0
AlertRestore=0
SelfAddress=0
FastStart=1
H323Tunneling=0
Register=0
Host=
Login=
Password=
[Auto]
Interval=5
[SIP]
Register=0
Expire=3600
Domain=
Host=
Login=
Password=
[Ports]
UDPMin=5000
UDPMax=5100
RTPMin=6000
RTPMax=6100
[Sound]
Dialtone=Data\Sound\dialtone.wav
Backring=Data\Sound\backring.wav
Busy=Data\Sound\busy.wav
Ring=Data\Sound\ring.wav
Connected=Data\Sound\connect.wav
[Trace]
VoIP=0
VoIPFileName=Data\VoIP.log
USB=0
USBFileName=Data\USB.log
Main=0
MainFileName=Data\Trace.log
[YesShortCut]
Enabled=0
Ctrl=0
Alt=0
Shift=0
Win=0
Text=
[NoShortCut]
Enabled=0
Ctrl=0
Alt=0
Shift=0
Win=0
Text=
[FlashShortCut]
Enabled=1
Ctrl=1
Alt=0
Shift=0
Win=0
Text=
[HoldShortCut]
Enabled=0
Ctrl=0
Alt=0
Shift=0
Win=0
Text=
[MuteShortCut]
Enabled=0
Ctrl=0
Alt=0
Shift=0
Win=0
Text=
[RedialShortCut]
Enabled=0
Ctrl=0
Alt=0
Shift=0
Win=0
Text=
[SpeakerShortCut]
Enabled=0
Ctrl=0
Alt=0
Shift=0
Win=0
Text=
Нужен батник который в файле %APPDATA%\InfinityPhone\InfinityPhone.ini для всех пользователей заменит строки

Auto=0 на Auto=1

и

Interval=любое_значение на Interval=5

а остальные строки оставить такими какие они есть на машинах.

Сам не смог осилить, завтра до конца рабочего нужно уже настроить на машинах. Нужна помощь.

Добавлено через 13 часов 12 минут
Нашёл вот такой скрипт:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
setlocal enabledelayedexpansion
Set infile=InfinityPhone.ini
Set find=Auto=0
Set replace=Auto=1
@echo off
setlocal enabledelayedexpansion
set COUNT=0
for /F "tokens=* delims=," %%n in (!infile!) do (
set LINE=%%n
set TMPR=!LINE:%find%=%replace%!
Echo !TMPR!>>TMP.TXT
)
move TMP.TXT %infile%
Но он изменяет только в папке в которой лежит сам .ini файл.
И исправляет Auto=0, на 0=Auto=1=0. Возможно это из-за наличия знака "=".
Так же вопрос открыт как изменить Interval=любое_значение на Interval=5?

Добавлено через 35 минут
Исправил путь Set infile=%APPDATA%\InfinityPhone\InfinityPhone.ini находит исправляет.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2014, 11:57
Ответы с готовыми решениями:

Изменение строчки в ini файле
Не могу найти ничего толкового. Собственно самому написать не хватает опыта. имеется INI файл...

Изменение определённого значения параметра в INI-файле
Добрый день, помогите пожалуйста с батничком, очень надо, но не силен в них Есть файл sett.ini...

Изменение строк в текстовом файле по заданному условию
Добрый день! Помогите, пожалуйста, с таким вопросом (ибо знаний категорически не хватает): имеется...

Изменение некоторых строк в bat-файле с последующим его запуском
есть батник с содержанием echo write 1 copy sys.im echo write 2 copy larg.im echo write 3...

3
1779 / 761 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
10.11.2014, 12:25 2
KznDarwin, попробуйте (не проверял)
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
setlocal EnableDelayedExpansion
 
Set infile=InfinityPhone.ini
Set in="Auto=0"
Set out="Auto=1"
 
    for /f "tokens=1* delims=]" %%A in ('find /v /n "" ^<"%infile%"') do (
        set line=%%B
        if "!line!"=="%in%" (echo %out%>>%$infile%) else (echo.!line!>>%$infile%)
        )
    del /q %infile%
    ren "%$infile%" "%infile%"
    
exit /b
0
3460 / 1998 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
10.11.2014, 13:08 3
Лучший ответ Сообщение было отмечено KznDarwin как решение

Решение

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
 
set "file=%APPDATA%\InfinityPhone\InfinityPhone.ini"
 
for /f "delims=" %%i in ('"type "%file%"& del "%file%""') do (
 for /f "delims==" %%j in ("%%i") do ((
  for /f "delims=" %%k in ('
   "(if %%j==Auto echo Auto=1)& (if %%j==Interval echo Interval=5)"
  ') do echo %%k
  )|| echo.%%i
  )>>"%file%"
 )
 
exit /b
1
3 / 3 / 0
Регистрация: 15.07.2013
Сообщений: 176
10.11.2014, 13:17  [ТС] 4
sov44, Не изменяет.
Пробовал в добавить "", не помогло

Добавлено через 6 минут
ComSpec, Спасибо. Сработало!
Но почему-то я не могу нажать ссылку вам "+1 спасибо" и "Лучший ответ".
0
10.11.2014, 13:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2014, 13:17
Помогаю со студенческими работами здесь

Считывание и изменение значений в ini файле
Здравствуйте! Что мне надо: Имеем файл *.ini вида key1 = value1 key2 = value2 ... keyN =...

Хранение и изменение пароля и даты в ini файле
Пароль и дата должны храниться в файле options.ini и передаваться в переменные char pas и TDate B...

Количество строк в файле log.ini
мне нужно что бы программа нашла количество строк в файле log.ini.

Найти в текстовом файле все группы из одинаковых идущих подряд пустых строк или строк, содержащих только пробелы
Взываю к помощи Помогите решить задачу: Найти во входном файле все группы из одинаковых идущих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru