1

Хорошо, я знаю, это звучит странно, но вот что я пытаюсь сделать.

  1. Найдите файл класса загрузки телефона с помощью команды оболочки. Файл загрузочного класса представляет собой список APK, которые необходимы телефону для выполнения определенных операций.
  2. Сохранение этого списка в виде текстового файла на моем компьютере. Этот текстовый файл теперь будет содержать имена .jar, такие как core.jar, services.jar, sc.jar и т.д.
  3. Просмотрите этот текстовый файл и прочитайте имена по одному.
  4. Для каждого имени файла, встречающегося в текстовом файле, он затем перейдет в каталог фреймворка телефона и скопирует фактический файл текстовых ссылок. Например....

Если первое имя в тексте было «services.jar», оно тогда посмотрело бы в правильную директорию телефона, найдите фактический файл «services.jar» и скопировало бы его в каталог на ПК.

Пока у меня 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
)

циклически перебирать текстовый файл, как я могу остановиться на каждой итерации, чтобы извлечь файл, связанный с этим именем, из другого каталога? Итак, первый цикл поиска находит core.jar, затем я беру реальный core.jar с телефона. Во втором цикле он находит services.jar в списке, затем я беру фактические services.jar из другого места .... и т.д.

Имейте в виду, что все время, пока BAT работает, мой телефон подключен к ПК через USB, иначе он, очевидно, не будет работать правильно.

Я надеюсь, что я объяснил это ясно ... трудно описать.

Спасибо Джимми

1 ответ1

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
)

Спасибо......

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .