1

我正在为一个简单的 android 应用程序编写一个批处理脚本,它将提取 bootclasspath 并保存到一个文本文件中:

adb shell echo $BOOTCLASSPATH > tmp.txt

这会将以下内容输出到文本文件

/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/sec_edm.jar:/system/framework/seccamera.jar:/system/framework/scrollpause.jar:/system/framework/stayrotation.jar:/system/framework/smartfaceservice.jar:/system/framework/abt-persistence.jar:/system/framework/secocsp.jar:/system/framework/sc.jar

这个问题是我不需要将前面的字符串“/system/framework”保存到文本中。那只是文件的路径,我不需要它。

那么如何使用批处理命令搜索该文件并删除“/system/framework/”的所有引用并保存到新文件中?

我试过这个例子无济于事......

findstr /V "/system/framework" tmp.txt > tmp2.txt

我还使用它通过删除前 18 个字符来仅删除字符串的第一个引用......确实有效......但显然没有删除其他引用......

@echo off
Set "InputFile=tmp.txt"
Set "OutputFile=tmp2.txt"
setLocal EnableDelayedExpansion > "%OutputFile%"
for /f "usebackq tokens=* delims= " %%a in ("%InputFile%") do (
set s=%%a
>> "%OutputFile%" echo.!s:~18!
)

如何使用批处理命令删除文本文件中“/system/framework/”的每个实例?

或者更好的是,我如何在没有额外信息的情况下提取引导类路径?

谢谢,吉米

4

1 回答 1

1
@ECHO OFF &SETLOCAL
FOR /f "delims=" %%a IN (tmp.txt) DO SET "BOOTCLASSPATH=%%a"
SET "BOOTCLASSPATH=%BOOTCLASSPATH:/system/framework/=%"
ECHO %BOOTCLASSPATH%

core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:telephony-common.jar:mms-common.jar:android.policy.jar:services.jar:apache-xml.jar:sec_edm.jar:seccamera.jar:scrollpause.jar:stayrotation.jar:smartfaceservice.jar:abt-persistence.jar:secocsp.jar:sc.jar
于 2013-08-27T17:43:20.453 回答