Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Замена текста из одного файла в другом

Ответить
Настройки темы
CMD/BAT - [решено] Замена текста из одного файла в другом

Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Всем доброго времени суток.Такая беда,есть 2 файла
File1.txt и file2.txt.
В первом файле есть строка:
mediatek.wlan.module.postfix=_consys_mt65%%a
Во втором файле:
set_metadata("/system/xbin/libmnlp_mt65%%b", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "ubject_r:libmnlp_mt65%%b_exec:s0");
Необходимо заменить %%b на %%a
Где %%a и %%b переменные.
Застрял на отделении того что после знака равно в первом файле.
Для замены думаю использовать sed.
Но для этого надо отделить в первом файле хотябы mt65%%a и во втором файле mt65%%b
Как,чем не знаю,уже всю голову сломал.
Ограничения таковы:
winXP,vba и js не поддерживает.
Кто чем поможет?!

Отправлено: 23:25, 18-11-2015

 

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


поместит в переменную na mt65%%a , использовать можно вот так:
Код: Выделить весь код
setlocal enabledelayedexpansion
for /f "tokens=3-4 delims=_" %%i in (file1.txt) do set na=%%i && echo !na:~4!
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:41, 19-11-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Elven:
поместит в переменную na mt65%%a , использовать можно вот так:
Код: Выделить весь код
setlocal enabledelayedexpansion
for /f "tokens=3-4 delims=_" %%i in (file1.txt) do set na=%%i && echo !na:~4!
Меня больше интересует где 65%%b, те там куча спецсимволов и пробелов

Отправлено: 16:34, 19-11-2015 | #3


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Для %%b так же, только немного длиннее
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1 delims=," %%i in (file2.txt) do for /f "tokens=3 delims=_" %%j in ("%%i") do set nb=%%j && echo !nb:~4,-2!
Очевидный минус такого решения: фрагменты строки обозначенные как %%a и %%b не должны содержать , и _

Последний раз редактировалось Elven, 19-11-2015 в 17:33.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:21, 19-11-2015 | #4


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Elven:
Для %%b так же, только немного длиннее
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1 delims=," %%i in (file2.txt) do for /f "tokens=3 delims=_" %%j in ("%%i") do set nb=%%j && echo !nb:~4,-2!
Очевидный минус такого решения: фрагменты строки обозначенные как %%a и %%b не должны содержать , и _
%%a и %%b это двухзначные числа
А объясните вот это:
do set nb=%%j && echo !nb:~4,-2!
И ещё что то не пойму где Маска mt65?!

Отправлено: 20:08, 19-11-2015 | #5


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Вот что у меня получилось.Работает так как надо.Это для нахождение второго.
А то что написал Elven выше работает, но оставляло кавычки...
@echo off
setlocal enabledelayedexpansion
cls
for /f "tokens=1 delims=," %%i in ('find /i "mt65" ^< "Port\META-INF\com\google\android\updater-script"') do (
for /f "tokens=3 delims=_" %%j in ("%%i") do (
set nb=%%j
)
)
set nb2=!nb:~0,-1!
echo %nb2%
pause>nul

Последний раз редактировалось blackeangel, 20-11-2015 в 07:50.


Отправлено: 07:27, 20-11-2015 | #6


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
do set nb=%%j \\присваиваем переменной nb значение переменной j
&& \\в случае успешного выполнения предыдущей команды...
echo !nb:~4,-2! \\выводим значение переменной nb отрезая первые 4 и последние 2 символа
Цитата blackeangel:
И ещё что то не пойму где Маска mt65?! »
а ее нужно оставить? по условию вроде бы
Цитата blackeangel:
Необходимо заменить %%b на %%a »
Цитата blackeangel:
но оставляло кавычки »
в каком месте? вроде бы нигде лишних кавычек быть не должно...

Цитата blackeangel:
Работает так как надо »
в таком случае принято отмечать тему решенной

Отправлено: 11:07, 20-11-2015 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Замена текста из одного файла в другом

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Множественная замена текста в файлах текстом из другого файла Delleter Скриптовые языки администрирования Windows 4 16-06-2017 05:16
CMD/BAT - [решено] Замена строки из одного файла в другом по маске blackeangel Скриптовые языки администрирования Windows 2 10-11-2015 16:05
CMD/BAT - [решено] поиск и замена из одного файла в другом alexmoreman Скриптовые языки администрирования Windows 6 27-05-2013 09:33
VBS/WSH/JS - [решено] Замена текста из другого файла ul9 Скриптовые языки администрирования Windows 46 28-10-2012 04:01
CMD/BAT - [решено] Сравнение файлов и замена значения из одного файла в другой. Aleks911tat Скриптовые языки администрирования Windows 12 25-08-2012 22:27




 
Переход