1

I have customer pizza lists that I have saved into 5 separate .txt files from my database in this format:

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

Each list is a phone number in quotes and each list varies in length.

First question
I have two sets of variables that I would like to replace with each quote in the 5 text files.
The two variables would be like:

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

I would like to run a batch file that reads each line in the text file and writes into another text file the following, replacing the quotes with the 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 % >

Then I would repeat for 30percent.txt, 35percent.txt, 40percent.txt and finally 50percent.txt file.

Second Question
I would also like to append the 5 new files together

3
  • If you've got Excel, this is going to be a lot easier to do in there.
    – user3463
    May 31, 2012 at 4:01
  • It is generally not recommended to ask two questions at once. Each question should be asked separately.
    – Bob
    Jan 3, 2013 at 17:04
  • appending files together is simply copy file1+file2+file3+...+fileN bigfile
    – SeanC
    Jan 3, 2013 at 17:05

2 Answers 2

1

It's a simple for loop:

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

See for /? for usage. This processes the file line by line, reading the line into the variable %%a and appending the modified line to the other file. The < and > are escaped with ^ (making ^< and ^>) because they have a special meaning in the command prompt. The % is 'escaped' with %%% because it's also a special character, but cannot be escaped like the others.


You can combine multiple text files like so:

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

Or you can loop with type and append (>>) (this will combine all files in the current directory, in alphabetical ascending sorted order):

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

You don't specify the OS so I'll provide a solution that'll work if you have sed available.

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .