Lote para ler arquivos de texto e substituir aspas por variáveis em novo arquivo

1

Tenho listas de pizza de clientes que salvei em cinco arquivos .txt separados do meu banco de dados neste formato:

Filename = 25Percent.TXT
"555-1211"
"555-1212"
"555-1223"

Cada lista é um número de telefone entre aspas e cada lista varia em tamanho.

Primeira pergunta
Eu tenho dois conjuntos de variáveis que gostaria de substituir com cada citação nos 5 arquivos de texto. As duas variáveis seriam como:

Var A = < Discount Pizza price for phone number is "
Var B = " 25 % >

Eu gostaria de executar um arquivo em lote que lê cada linha no arquivo de texto e escreve em outro arquivo de texto, substituindo as aspas pelas variáveis:

New Filename = 25Percentfinished.TXT
< Discount Pizza price for phone number is "555-1211" 25 % >
< Discount Pizza price for phone number is "555-1212" 25 % >
< Discount Pizza price for phone number is "555-1223" 25 % >

Então eu repetiria para 30percent.txt , 35percent.txt , 40percent.txt e finalmente 50percent.txt arquivo.

Segunda pergunta
Eu também gostaria de acrescentar os 5 novos arquivos juntos

    
por John 31.05.2012 / 05:49

2 respostas

1

É um simples loop for :

for /f "tokens=*" %%a in (25Percent.txt) do (
    echo ^< Discount Pizza price for phone number is %%a 25 %%% ^>>>25Percentfinished.txt
)

Veja for /? para uso. Isso processa o arquivo linha por linha, lendo a linha na variável %%a e anexando a linha modificada ao outro arquivo. Os < e > são escapados com ^ (tornando ^< e ^> ) porque eles têm um significado especial no prompt de comando. O % é 'escapado' com %%% porque também é um caractere especial, mas não pode ser escapado como os outros.

Você pode combinar vários arquivos de texto da seguinte forma:

copy file1.txt + file2.txt + file3.txt destination.txt

Ou você pode fazer um loop com type e acrescentar ( >> ) (isso combinará todos os arquivos no diretório atual, em ordem alfabética crescente):

for %%a in (*.txt) do (
    type %%a>>destination.txt
)
    
por 31.05.2012 / 06:33
0

Você não especifica o SO, então eu fornecerei uma solução que funcionará se você tiver sed disponível.

$ sed -e 's/^\(.*\)$/< Discount Pizza price for phone number is  25 % >/' < 25Percent.TXT
    
por 31.05.2012 / 08:42