Extrai texto da lista de txt com o prompt de comando Windows

2

Eu tenho uma lista em um texto como este

AAA 1234561
BBB12 66698732
CCCCC 5878471
DD131 262554158

ee eu tenho um diretório como o abaixo

DirectoryA/AAA
DirectoryA/BBB12
DirectoryA/CCCCC
DirectoryA/DD131

Eu quero criar um arquivo txt com um nome que permita chamá-lo id.txt que contém o respectivo código para sua pasta

So the DirectoryA/AAA/id.txt contains 1234561
DirectoryA/BBB12/id.txt contains 66698732 and so on. 

Eu tentei extrair a linha com / p mas copia a linha inteira e não apenas o ID.

    
por Sonamor 16.08.2013 / 23:59

1 resposta

4
for /f "tokens=1-2" %%A in (x.txt) do echo %%B > DirectoryA\%%A\id.txt

Discussão:

Você pode obter muitas informações úteis digitando FOR /? em um Prompt de Comando. Em particular,

FOR /F  ["options"]  %variable IN  (file-set)  DOcommand[command-parameters]

lê o arquivo ou arquivos especificados entre parênteses (o file-set ) e analisa cada linha em tokens. tokens=1-2 é a string options para dizer que você deseja a primeira e a segunda palavras em cada linha. %%A especifica que %%A é a variável na qual a primeira palavra será lida; implicitamente / automaticamente, a segunda palavra entra em %%B . Em seguida, o comando echo será executado com %%A e %%B definido para as duas palavras do arquivo.

Observação: Se você estivesse digitando esse comando diretamente no Prompt de Comando, usaria %A e %B , mas teria que usar sinais de porcentagem dupla ao fazer a mesma coisa um script (arquivo em lotes).

    
por 17.08.2013 / 01:39