Ways to Combine Two (or More) Text Files

Written by Barry Dysert (last updated November 18, 2019)

12

If you have a couple (or more) text files that you'd like to combine into one larger text file, Windows provides a few ways to do it. Which way you choose will likely depend upon how many files you want to combine, how big they are, and how comfortable you are with the different approaches.

One approach that may first come to mind is the copy/paste approach. This lets you stay within the familiar Windows environment while still accomplishing your goal. Follow these general steps:

  1. Right-click on the desktop or in a folder and choose New | Text Document from the resulting Context menu. Windows obligingly creates a new text document for you.
  2. Name the text document anything you like, such as "Combined.txt".
  3. Open the newly created text file in Notepad.
  4. Using Notepad, open a text file you want combined.
  5. Press Ctrl+A. All the information in the text file is selected.
  6. Press Ctrl+C. All the selected information is copied to the Clipboard.
  7. Select the text file you opened in step 3.
  8. Press Ctrl+V. All the information is pasted into the text file.
  9. Close the text file you opened in step 4.
  10. Repeat steps 4 through 9 for each of the other text files you want combined into the new one.
  11. Save the text file that contains the combined information.

Obviously, this is a very tedious approach—especially if you have more than a couple of files to be combined. The other approaches are much faster, but they do require that you do the work at the command line.

Probably the simplest command-line approach to use in combining files is to use the Copy command. With Copy, you can specify a number of files as inputs and one file as an output file. This will then copy all of the input files into the one output file, and you're done. Your command line might look something like this:

C:\> copy in1.txt + in2.txt + in3.txt Combined.txt

This will copy the files "in1.txt", "in2.txt", and "in3.txt" to a file called "Combined.txt". (The Combined.txt file is automatically created by the Copy command. If Combined.txt previously existed, it is overwritten by the command.) The Copy command supports wildcards, too, so if your file names follow a standard format, you could even do it this way:

C:\> copy in*.txt Combined.txt

This is probably the best approach to take, but if you prefer a more esoteric solution you could try either of two variations of the Type command. For example,

C:\> type in*.txt > Combined.txt

This types the contents of all of your "in" text files and sends the output to your "Combined.txt" file. If the Combined.txt file previously existed, it is overwritten by this command.

The second variation of the Type command also uses the For command. In this variation, the "in" files are cycled through one at a time and their contents are appended to your "Combined.txt" file:

C:\>For %f in (in*.txt) do type %f >> Combined.txt

These are all interesting ways to attack the problem, but my favorite is the simple Copy command.

 This tip (5670) applies to Windows 7, 8, and 10.

Author Bio

Barry Dysert

Barry has been a computer professional for over 35 years, working in different positions such as technical team leader, project manager, and software developer. He is currently a software engineer with an emphasis on developing custom applications under Microsoft Windows. When not working with Windows or writing Tips, Barry is an amateur writer. His first non-fiction book is titled "A Chronological Commentary of Revelation." ...

MORE FROM BARRY

Scanning Pictures with a Scanner

If all you have is a hardcopy picture, you can still digitize it by using a scanner. This tip gives a high-level ...

Discover More

Understanding Jump Lists

Jump lists are great productivity enhancers to Windows 7. By using jump lists, you can easily access frequently used ...

Discover More

DesktopOK

Are you frustrated by your desktop icons moving around whenever you change your screen resolution or use Remote Desktop? ...

Discover More
More WindowsTips

Breaking a Network Drive Mapping Association

Windows makes it easy to break the association between a network drive and its assigned letter. This tip explains how.

Discover More

Saving a Windows Search

Windows has a built-in search utility that allows you to search for strings inside of files. You can even save your ...

Discover More

Quick Rename of Files in Bulk

Renaming a large set of files one file at a time can be time consuming and tedious. Windows allows for you to quickly ...

Discover More
Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] (all 7 characters, in the sequence shown) in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is 4 + 5?

2023-04-10 06:35:22

amit

Really helpFul... saved lot of time.. thanks


2022-11-20 10:22:08

sandeep kothari

This is amazing Barry!


2022-11-19 07:46:41

Rico

Wow. This has helped me a lot. Thank you very much.


2022-08-29 02:35:28

Ioan

You can simple use Python for this job, as below:
---------------------------------------------------------------

import shutil
import os
import glob

filenames = glob.glob('*.txt')

with open('output_file.txt','wb') as wfd:
for f in filenames:
with open(f,'rb') as fd:
shutil.copyfileobj(fd, wfd)


2022-05-19 12:17:12

garcia

80 txt combined in a second. thanks a lot!


2021-04-15 12:50:52

Arun

 I am getting this word before starting of line after copying.
Is there any solution to trim this.

Error comes in Ansi Format only


2021-03-14 11:20:10

William Neill

My problem: How to merge a bunch of TXT files (e.g., account info) for printout as a single document, using Notepad.

Having cut my programming teeth in the age of DOS/360, I found Barry's Command-Prompt approach appealing. And, after a couple false starts, I was able to get this to work: C:\Users\WN>copy G:\Files\*.txt MergedFileName.txt .

But, two glitches: 1) The MergedFileName.txt was written, not to the G: drive as I had wanted, but to C:\Users\WN. So, I had to go find and move it, manually. Not a big deal, but just another step.

2) The many *.txt files in the folder "Files" were merged, not alphabetically by component-file name as I had wanted, but by the component files' times of creation. Just moving the *.txt files to a new folder before merger didn't help, because Windows, in its wisdom, insisted on ordering by time of file creation, not time of most recent modification. So, the only way I could find to alphabetize component files within MergedFileName.txt, was to go back to the original set in "Files" and rename and resave so that re-creation-time order = alphabetic order. Surely, there is a better way??


2020-06-23 21:02:06

Timothy Takemoto timtak

Thank you. Copy worked for me. I could not change directory in the command prompt to my external SD Card so I copied my text files to C:\Users\MyUsername> which is where the command prompt defaulted to.


2020-03-27 13:07:53

Kam Mistry

Great post! Very helpful.


2020-03-07 12:55:31

walki

this wasn't helpfull what about you can make a TIP on how to combine mutiple files into a single file on Windows 10 Home Edtiton


2019-12-24 10:53:07

J. Woolley

@John Fielding
Open a command prompt in the parent folder of the branch001 folder (i.e., the parent of all branch* folders) and try this:
DEL CombineGLT122019.XMT 2>NUL
FOR /F %f IN ('DIR /B branch*') DO TYPE %f\GLT122019.XMT >>CombineGLT122019.XMT


2019-12-23 16:46:18

John Fielding

Great write-up, Barry. How would I code the iterative copy if my file structure is more like: branch001\GLT122019.XMT, branch002\GLT122019.XMT, \branch003\GLT122019.XMT etc etc etc, and I want all of the data from each branch's file merged into one XMT (or TXT) document? I'd like to wildcard the branch node since we frequently add branches. I've been experimenting with copy, for/copy, and xcopy for days and cannot get it to work.


Newest Tips