好的,我知道这听起来很奇怪,但这就是我正在尝试做的。
- 通过shell命令查找手机的启动类文件。启动类文件是手机执行某些操作所需的APK列表
- 将该列表作为文本文件保存在我的电脑上。此文本文件现在将包含 .jar 名称,例如 core.jar、services.jar、sc.jar 等。
- 循环遍历此文本文件并一次读取一个名称。
- 对于在文本文件中遇到的每个文件名,它将转到手机的框架目录并复制文本引用的实际文件。例如....
如果文本中的第一个名字是“services.jar”,它就会查找手机的正确目录并找到实际文件“services.jar”并将其复制到 PC 上的目录中。
到目前为止,我已经解决了 1 和 2。我也知道如何从手机上的正确目录中提取文件,我只是不知道如何在每次迭代时中断循环以执行搜索和复制功能。
现在 BAT 的工作原理是这样的......
adb shell echo $BOOTCLASSPATH > tmp.txt
现在我想循环遍历 tmp.txt 以查看其中的名称,并根据找到的名称从另一个位置提取文件。如果文本中包含 core.jar,则它会从手机中提取实际的 core.jar 文件。
如果我使用...
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "usebackqdelims=" %%a in ("temp.txt") do (
SET file!index!=%%a
"what file did i find on this iteration?
"look in directory "X" on phone and copy that file to PC
....continue loop
ECHO !index! - %%a | more
SET /A index=!index!+1
)
要循环遍历 txt 文件,我怎样才能在每次迭代时停止以从不同目录提取与该名称关联的文件?因此,第一次循环会找到 core.jar,然后我从手机中获取实际的 core.jar。第二次循环会找到列表中的 services.jar,然后我从另一个位置获取实际的 services.jar……等等。
请记住,此 BAT 运行时,我的手机通过 USB 连接到我的电脑,否则它显然无法正常工作。
我希望我已经解释清楚了这一点...这很难描述。
谢谢,吉米
答案1
我明白了......它总是比想象的简单得多。
在循环内添加 xcopy 就可以了
xcopy "%%f" "tmp" /y >Null
现在循环看起来像这样......
for /f "usebackqdelims=" %%a in ("temp.txt") do (
SET file!index!=%%a
xcopy "%%f" "tmp" /y >Null
ECHO !index! - %%a | more
SET /A index=!index!+1
)
谢谢......