![Lote para leer archivos de texto y reemplazar comillas con variables en un archivo nuevo](https://rvso.com/image/1316775/Lote%20para%20leer%20archivos%20de%20texto%20y%20reemplazar%20comillas%20con%20variables%20en%20un%20archivo%20nuevo.png)
Tengo listas de pizzas de clientes que guardé en 5 archivos .txt separados de mi base de datos en este formato:
Filename = 25Percent.TXT
"555-1211"
"555-1212"
"555-1223"
Cada lista es un número de teléfono entre comillas y cada lista varía en longitud.
Primera pregunta
Tengo dos conjuntos de variables que me gustaría reemplazar con cada cita en los 5 archivos de texto.
Las dos variables quedarían como:
Var A = < Discount Pizza price for phone number is "
Var B = " 25 % >
Me gustaría ejecutar un archivo por lotes que lea cada línea del archivo de texto y escriba en otro archivo de texto lo siguiente, reemplazando las comillas con las variables:
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 % >
Entonces repetiría por30por ciento.txt,35por ciento.txt,40por ciento.txty finalmente50por ciento.txtarchivo.
Segunda pregunta
También me gustaría adjuntar los 5 archivos nuevos juntos.
Respuesta1
Es un for
bucle simple:
for /f "tokens=*" %%a in (25Percent.txt) do (
echo ^< Discount Pizza price for phone number is %%a 25 %%% ^>>>25Percentfinished.txt
)
Ver for /?
uso. Esto procesa el archivo línea por línea, lee la línea en la variable %%a
y agrega la línea modificada al otro archivo. Los <
y >
se escapan con ^
(creando ^<
y ^>
) porque tienen un significado especial en el símbolo del sistema. Se %
"escapa" %%%
porque también es un personaje especial, pero no se puede escapar como los demás.
Puede combinar varios archivos de texto de esta manera:
copy file1.txt + file2.txt + file3.txt destination.txt
O puede realizar un bucle con type
y agregar ( >>
) (esto combinará todos los archivos en el directorio actual, en orden alfabético ascendente):
for %%a in (*.txt) do (
type %%a>>destination.txt
)
Respuesta2
No especifica el sistema operativo, por lo que le proporcionaré una solución que funcionará si la tiene sed
disponible.
$ sed -e 's/^\(.*\)$/< Discount Pizza price for phone number is \1 25 % >/' < 25Percent.TXT