|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Замена строк. |
|
|
CMD/BAT - [решено] Замена строк.
|
Старожил Сообщения: 175 |
Профиль | Отправить PM | Цитировать Привет всем, есть файл config.xml в нём куча строк.
Мне нужно заменить строки На И На Я пытался создать скрипт но не получилось, попробуйте исправить мой скрипт пожалуйста... setlocal EnableDelayedExpansion set filename=%AppData%\Skype\%SLOGIN%\config.xml :Это путь к файлу. set $filename=%TEMP%\new.txt for /f "tokens=1* delims=]" %%A in ('find /v /n "" ^<"%filename%"') do (set line=%%B if "!line!"=="<AdvertEastRailsEnabled>1</AdvertEastRailsEnabled>" (echo ^<AdvertEastRailsEnabled^>0^<^/AdvertEastRailsEnabled^>>>%$filename%) else (echo.!line!>>%$filename%)) del /q %filename% ren "%$filename%" "%filename%" for /f "tokens=1* delims=]" %%A in ('find /v /n "" ^<"%filename%"') do (set line=%%B if "!line!"=="<AdvertPlaceholder>1</AdvertPlaceholder>" (echo ^<AdvertPlaceholder^>0^<^/AdvertPlaceholder^>>>%$filename%) else (echo.!line!>>%$filename%)) del /q %filename% ren "%$filename%" "%filename%" pause exit /b |
|
------- Отправлено: 02:00, 20-02-2017 |
Забанен Сообщения: 795
|
http://forum.oszone.net/post-2667038-9.html
Вообще, такие скрипты пишутся для случаеd поиска и замены во многих файлах сразу. Если файл один, то хороший редактор с регулярками (AkelPad, Sublime, Notepad++, Syn2 ,... тысячи их) быстрей, удобней и проще. |
Отправлено: 02:44, 20-02-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Мне нужен бат скрипт!
|
------- Отправлено: 03:25, 20-02-2017 | #3 |
Забанен Сообщения: 795
|
|
Отправлено: 05:13, 20-02-2017 | #4 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Наверно нужно экранировать символы?
|
|
------- Отправлено: 05:49, 20-02-2017 | #5 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать angel_lyucifer,
Вот CMD
@Echo Off SetLocal EnableExtensions EnableDelayedExpansion Set "File=%AppData%\Skype\%SLOGIN%\config.xml" rem Set "File=Z:\Box_In\config.xml" Set "Rep1=^<AdvertPlaceholder^>0^</AdvertPlaceholder^>" Set "Rep2=^<AdvertEastRailsEnabled^>0^</AdvertEastRailsEnabled^>" >"%File%.bat.tmp" (FOR /F "usebackq delims=" %%s IN (`More "%File%"`) DO Echo %%s) Set /A N1=0,N2=0,NN=0 FOR /F "usebackq Skip=2 delims=[]" %%n IN (`Find /N "<AdvertPlaceholder>1</AdvertPlaceholder>" "%File%.bat.tmp"`) DO Set N1=%%n FOR /F "usebackq Skip=2 delims=[]" %%n IN (`Find /N "<AdvertEastRailsEnabled>1</AdvertEastRailsEnabled>" "%File%.bat.tmp"`) DO Set N2=%%n >"%File%" (FOR /F "usebackq delims=" %%s IN (`More "%File%.bat.tmp"`) DO ( Set /A NN+=1 If Not !NN! EQU %N1% If Not !NN! EQU %N2% Echo %%s If !NN! EQU %N1% Echo %Rep1% If !NN! EQU %N2% Echo %Rep2% )) DEL "%File%.bat.tmp" 2>NUL Но надёжнее VBS
Set WSS = CreateObject("WScript.Shell") File_In = WSS.ExpandEnvironmentStrings("%AppData%") + "\Skype\" + WSS.ExpandEnvironmentStrings("%SLOGIN%") + "\config.xml" 'MsgBox File_In 'File_In = "Z:\Box_In\config.xml" '''''''''''' File_Out = File_In 'File_Out = "Z:\Box_In\config.xml.vbs.tmp" '''''''''''' ReMass = Array( _ "<AdvertPlaceholder>1</AdvertPlaceholder>", _ "<AdvertPlaceholder>0</AdvertPlaceholder>", _ "<AdvertEastRailsEnabled>1</AdvertEastRailsEnabled>", _ "<AdvertEastRailsEnabled>0</AdvertEastRailsEnabled>" _ ) N1 = LBound(ReMass) N2 = UBound(ReMass) 'Set "File=%AppData%\Skype\%SLOGIN%\config.xml" Set FSO = CreateObject("Scripting.FileSystemObject") Set NFile = FSO.OpenTextFile(File_In, 1, False) S = NFile.ReadAll NFile.Close For i = N1 To N2 Step 2 S = Replace(S, ReMass(i), ReMass(i + 1)) Next Set NFile = FSO.OpenTextFile(File_Out, 2, True) NFile.Write S NFile.Close |
------- Последний раз редактировалось megaloman, 20-02-2017 в 11:58. Отправлено: 10:55, 20-02-2017 | #6 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
------- Отправлено: 18:45, 20-02-2017 | #7 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата angel_lyucifer:
|
|
------- Отправлено: 19:44, 20-02-2017 | #8 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Он из файла удаляет определённые важные строки... |
|
------- Отправлено: 20:37, 20-02-2017 | #9 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
------- Отправлено: 20:55, 20-02-2017 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Замена строк в файле по признаку и маске | ВиталийВ | Скриптовые языки администрирования Windows | 12 | 13-09-2015 07:54 | |
CMD/BAT - Поиск и замена строк в ini-файлах | alex_frog | Скриптовые языки администрирования Windows | 10 | 25-11-2014 22:48 | |
PowerShell - [решено] Замена строк по всему массиву. | love_fist911 | Скриптовые языки администрирования Windows | 2 | 26-08-2013 19:01 | |
CMD/BAT - Замена нескольких строк в файле | bcubbs@fb | Скриптовые языки администрирования Windows | 3 | 24-01-2013 14:01 | |
CMD/BAT - [решено] Замена строк конфига | The_Name | Скриптовые языки администрирования Windows | 4 | 22-09-2009 11:19 |
|