Показать полную графическую версию : [решено] Замена текста из одного файла в другом
blackeangel
18-11-2015, 23:25
Всем доброго времени суток.Такая беда,есть 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 не поддерживает.
Кто чем поможет?!
поместит в переменную 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
поместит в переменную na mt65%%a , использовать можно вот так:
setlocal enabledelayedexpansion
for /f "tokens=3-4 delims=_" %%i in (file1.txt) do set na=%%i && echo !na:~4!
Меня больше интересует где 65%%b, те там куча спецсимволов и пробелов
Для %%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
Для %%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
Вот что у меня получилось.Работает так как надо.Это для нахождение второго.
А то что написал 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
do set nb=%%j \\присваиваем переменной nb значение переменной j
&& \\в случае успешного выполнения предыдущей команды...
echo !nb:~4,-2! \\выводим значение переменной nb отрезая первые 4 и последние 2 символа
И ещё что то не пойму где Маска mt65?! »
а ее нужно оставить? по условию вроде бы Необходимо заменить %%b на %%a »
но оставляло кавычки »
в каком месте? вроде бы нигде лишних кавычек быть не должно...
Работает так как надо »
в таком случае принято отмечать тему решенной ;)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.