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

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

Tenho listas de pizzas de clientes que salvei em 5 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 comprimento.

Primeira pergunta
Tenho dois conjuntos de variáveis ​​que gostaria de substituir em 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 % >

Gostaria de executar um arquivo em lote que leia cada linha do arquivo de texto e grave em outro arquivo de texto o seguinte, 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 por30 por cento.txt,35 por cento.txt,40 por cento.txte finalmente50 por cento.txtarquivo.

Segunda questão
Eu também gostaria de anexar os 5 novos arquivos juntos

Responder1

É um forloop simples:

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 %%ae anexando a linha modificada ao outro arquivo. Os <e >são escapados com ^(making ^<and ^>) porque têm um significado especial no prompt de comando. O %é 'escapável' %%%porque também é um caractere especial, mas não pode ser escapado como os outros.


Você pode combinar vários arquivos de texto assim:

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

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

for %%a in (*.txt) do (
    type %%a>>destination.txt
)

Responder2

Você não especifica o sistema operacional, então fornecerei uma solução que funcionará se você tiver seddisponível.

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

informação relacionada