Faz o loop através do arquivo de texto para nomes no texto, em seguida, puxa o arquivo associado a esse nome (mesmo nome) de uma pasta

1

Ok, sei que isso parece estranho, mas aqui está o que estou tentando fazer.

  1. Encontre o arquivo de classe de inicialização de um telefone por meio do comando shell. O arquivo de classe de inicialização é uma lista de APKs que o telefone precisa para executar determinadas operações
  2. Salvando essa lista como arquivo de texto no meu PC. Este arquivo de texto agora conterá nomes .jar como core.jar, services.jar, sc.jar, etc.
  3. Percorra este arquivo de texto e leia os nomes um por vez.
  4. Para cada nome de arquivo encontrado no arquivo de texto, ele irá para o diretório de estrutura do telefone e copiará o arquivo real ao qual o texto faz referência. Por exemplo ....

Se o primeiro nome no texto fosse "services.jar", ele procuraria no diretório correto do telefone e localizaria o arquivo real "services.jar" e o copiaria para um diretório no PC.

Até agora eu tenho 1 e 2 funcionou. Eu também sei como puxar o arquivo do diretório correto no telefone, eu só não sei como quebrar o loop em cada iteração para executar a função de pesquisa e cópia.

Então, agora, aqui está como o BAT funciona ....

adb shell echo $BOOTCLASSPATH > tmp.txt

Agora quero percorrer o tmp.txt para ver quais nomes estão nele e puxar um arquivo de outro local com base nos nomes que ele encontrar. Se core.jar estiver no texto, ele extrairá o arquivo core.jarfile real do telefone.

Se eu usar ...

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
)

para percorrer o arquivo txt, como posso parar em cada iteração para puxar o arquivo associado a esse nome do diretório diferente? Então primeiro percorre o core.jar, então eu pego o core.jar real do telefone. Segundo loop que encontra services.jar na lista, eu pego o services.jar real de outro local .... etc.

Tenha em mente que durante todo o tempo que este BAT está a funcionar, o meu telefone está ligado ao meu PC via USB, caso contrário, obviamente, não funcionará correctamente.

Espero ter explicado isso claramente ... é difícil descrever.

Obrigado Jimmie

    
por user2019273 29.08.2013 / 22:05

1 resposta

1

Eu percebi ... como sempre, foi muito mais simples do que o esperado.

Adicionando um xcopy dentro do loop fez o truque

xcopy "%%f" "tmp" /y >Null

Então agora o loop se parece com isso ...

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
)

Obrigado ......

    
por 30.08.2013 / 13:10

Tags