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

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

blackeangel 18-11-2015 23:25 2576299

Замена текста из одного файла в другом
 
Всем доброго времени суток.Такая беда,есть 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", "u:object_r:libmnlp_mt65%%b_exec:s0");
Необходимо заменить %%b на %%a
Где %%a и %%b переменные.
Застрял на отделении того что после знака равно в первом файле.
Для замены думаю использовать sed.
Но для этого надо отделить в первом файле хотябы mt65%%a и во втором файле mt65%%b
Как,чем не знаю,уже всю голову сломал.
Ограничения таковы:
winXP,vba и js не поддерживает.
Кто чем поможет?!

Elven 19-11-2015 12:41 2576451

поместит в переменную na mt65%%a , использовать можно вот так:
Код:

setlocal enabledelayedexpansion
for /f "tokens=3-4 delims=_" %%i in (file1.txt) do set na=%%i && echo !na:~4!


blackeangel 19-11-2015 16:34 2576551

Цитата:

Цитата Elven (Сообщение 2576451)
поместит в переменную na mt65%%a , использовать можно вот так:
Код:

setlocal enabledelayedexpansion
for /f "tokens=3-4 delims=_" %%i in (file1.txt) do set na=%%i && echo !na:~4!


Меня больше интересует где 65%%b, те там куча спецсимволов и пробелов

Elven 19-11-2015 17:21 2576567

Для %%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 не должны содержать , и _

blackeangel 19-11-2015 20:08 2576659

Цитата:

Цитата Elven (Сообщение 2576567)
Для %%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?!

blackeangel 20-11-2015 07:27 2576833

Вот что у меня получилось.Работает так как надо.Это для нахождение второго.
А то что написал 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

Elven 20-11-2015 11:07 2576910

Код:

do set nb=%%j \\присваиваем переменной nb значение переменной j
&& \\в случае успешного выполнения предыдущей команды...
echo !nb:~4,-2! \\выводим значение переменной nb отрезая первые 4 и последние 2 символа

Цитата:

Цитата blackeangel
И ещё что то не пойму где Маска mt65?! »

а ее нужно оставить? по условию вроде бы
Цитата:

Цитата blackeangel
Необходимо заменить %%b на %%a »

Цитата:

Цитата blackeangel
но оставляло кавычки »

в каком месте? вроде бы нигде лишних кавычек быть не должно...

Цитата:

Цитата blackeangel
Работает так как надо »

в таком случае принято отмечать тему решенной ;)


Время: 08:23.

Время: 08:23.
© OSzone.net 2001-