Пакетное чтение текстовых файлов и замена кавычек переменными в новом файле

Пакетное чтение текстовых файлов и замена кавычек переменными в новом файле

У меня есть списки заказов пиццы клиентами, которые я сохранил в 5 отдельных .txt-файлах из моей базы данных в следующем формате:

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

Каждый список представляет собой номер телефона в кавычках, и каждый список имеет разную длину.

Первый вопрос
У меня есть два набора переменных, которые я хотел бы заменить на каждую цитату в 5 текстовых файлах.
Две переменные будут такими:

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

Я хотел бы запустить пакетный файл, который считывает каждую строку в текстовом файле и записывает в другой текстовый файл следующее, заменяя кавычки переменными:

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 % >

Затем я бы повторил для30процентов.txt,35процентов.txt,40процентов.txtи наконец50процентов.txtфайл.

Второй вопрос
Я также хотел бы присоединить 5 новых файлов вместе

решение1

Это простой forцикл:

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

См for /?. использование. Это обрабатывает файл построчно, считывая строку в переменную %%aи добавляя измененную строку в другой файл. Символы <и >экранируются с помощью ^(создавая ^<и ^>), поскольку они имеют особое значение в командной строке. Символ %«экранируется» с помощью , %%%поскольку он также является специальным символом, но не может быть экранирован, как другие.


Вы можете объединить несколько текстовых файлов следующим образом:

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

Или вы можете выполнить цикл с помощью typeи добавить ( >>) (это объединит все файлы в текущем каталоге, отсортированные в алфавитном порядке по возрастанию):

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

решение2

Вы не указали ОС, поэтому я предоставлю решение, которое будет работать, если оно у вас sedесть.

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

Связанный контент