使用batch命令搜索文本文件并删除字符串

时间:2013-08-27 16:33:48

标签: android batch-file

我正在编写一个简单的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 /”的每个实例?

或者甚至更好,如何在没有额外信息的情况下提取bootclasspath?

谢谢, 吉米

1 个答案:

答案 0 :(得分: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