标题: [文本处理] 能否通过批处理替换文件中的指定字符串? [打印本页]
作者: xmaojian 时间: 2014-10-4 18:33 标题: 能否通过批处理替换文件中的指定字符串?
假设电脑磁盘的任意一个目录下(x:\XXX\)有这样几个文件:
boot.img
recovery-from-boot.p
adb.exe
install-recovery.sh(类似于.bat文件)
make.bat
其中,install-recovery.sh文件内容形式如下:
#!/system/bin/sh
update_recovery --check-sha1 98fe5b9f33d3069c5865a1fb26c584a92412cd94 \
--src-sha1 b076801a9930e347983a31c0c09bf8db58ada49a \
--tgt-sha1 fc4f6cb4208b347df32cf8710a9cb8e247915373 \
--tgt-size 11349504 \
--patch /system/recovery-from-boot.p
手机打开的界面图:
make.bat文件的内容如下:
adb push boot.img /data/local/tmp
adb push recovery-from-boot.p /data/local/tmp
adb shell "cd /data/local/tmp; applypatch boot img recovery.img fc4f6cb4208b347df32cf8710a9cb8e247915373 11349504 b076801a9930e347983a31c0c09bf8db58ada49a:recovery-from-boot.p"
adb pull /data/local/tmp/recovery.img
其中,紫色“fc4f6cb4208b347df32cf8710a9cb8e247915373”这一串字符就是install-recovery.sh中tgt-sha1后面的那一串字符(字符串前后均有空格,以下同),而蓝色“11349504”对应
install-recovery.sh中tgt-size后面的那串字符,最后的红色“b076801a9930e347983a31c0c09bf8db58ada49a”则对应install-recovery.sh中src-sha1后面的那串字符。
问题:能否编写一个bat文件,使得自动读取install-recovery.sh中上述三串字符的内容,并自动替换到make.bat中的相应位置,其中所有的5个文件的名称都是固定的,且都在同一目录下,另外install-recovery.sh文件的格式是固定的,大大们如能回复,万分感谢。。。
PS:自己得知某手机rom官方recovery提取方法,因为有很多版本,且提取方法均是一样,于是想能不能做个简单点的批处理,简化下操作,尤其适用于不太了解的朋友。
作者: terse 时间: 2014-10-4 19:49
在同目录下执行 运行前 请先备份- @echo off&setlocal enabledelayedexpansion
- set str=/c:"--tgt-size" /c:"--tgt-sha1" /c:"--src-sha1"
- for /f "tokens=2" %%i in (' findstr /i %str% install-recovery.sh') do (
- set s2=!s!
- set s=!s1!
- set s1=%%i
- )
-
- (echo;adb push boot.img /data/local/temp
- echo;adb push recovery-from-boot.p /data/local/temp
- echo;adb shell "cd /data/local/tmp; applypatch boot img recovery.img %s% %s1% %s2%:recovery-from-boot.p"
- echo;adb pull /data/local/tmp/recovery.img)>make.bat
- pause
复制代码
作者: xmaojian 时间: 2014-10-4 20:06
本帖最后由 xmaojian 于 2014-10-4 20:52 编辑
回复 2# terse
厉害,批处理运行正确无误,完美生成准确的make.bat,再次感谢了。。。PS:我1楼自己写的make.bat其中的2个目录出了点错误。。。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |