Solved

Join text files

Posted on 2013-12-03
11
406 Views
Last Modified: 2013-12-07
I have several text files which need to be joined together.  They all contain data.
I simply want to join the contents of each file in an orderly way, one after another and so forth, and then I want to form 1 file.

For example, there are 4 .txt files, at C:\WorkingFolder\...

They all end with .. 1.txt,  ..2.txt,  ...3.txt and ...4.txt  (for instance Order1.txt, Order2.txt, Order3.txt and Order4.txt.  I want to join them all into 1 .txt file called OrdersComb.txt.
The order of the joining of the contents does not have to follow the 1,2,3,4 but that would be fine if it followed that logical pattern.
0
Comment
Question by:100questions
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +1
11 Comments
 
LVL 56

Accepted Solution

by:
Bill Prew earned 500 total points
ID: 39694434
The simplest way is just:

copy file1.txt+file2.txt+file3.txt+file4.txt orderscomb.txt

you may also be able to use a wildcard if all the files match a patter, like:

copy file?.txt orderscomb.txt

~bp
0
 
LVL 14

Expert Comment

by:Ram Balachandran
ID: 39694613
yes, if you wish you can also use vbscript also. In the following link you can merge multiple txt files from specific folder to one txt file. It will merge all data to one txt file [OrdersComb.txt]  from the path C:\workingfolder

Const ForReading = 1 
 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objOutputFile = objFSO.CreateTextFile("OrdersComb.txt") 
 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
 
Set FileList = objWMIService.ExecQuery _ 
    ("ASSOCIATORS OF {Win32_Directory.Name='C:\workingfolder''} Where " _ 
        & "ResultClass = CIM_DataFile") 
 
For Each objFile In FileList 
    Set objTextFile = objFSO.OpenTextFile(objFile.Name, ForReading)  
    strText = objTextFile.ReadAll 
    objTextFile.Close 
    objOutputFile.WriteLine strText 
Next 
 
objOutputFile.Close

Open in new window

0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 39694743
I'd go with copy command suggested by Bill from batch unless you need something like a specific order etc.  If needed then get the output of the dir command into the order you want, e.g.

e.g. date order:  dir /od  dir /o-d
etc.
or even something like using a sort by 5th char in name
dir /b /o-d | sort /+5

then you can read whatever list of filenames you make, and pipe them all into a new file with a one liner batch:

@echo off
(for /f "tokens=*" %%a in ('dir /b /o-d /a-d Order*.txt') do type "%%~a") > outputfile.txt
0
Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

 

Author Comment

by:100questions
ID: 39695138
Lastly, when joining the files.
I want a blank line to separate the data.   Is this possible?
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 39695333
Don't know which ones you have tried or talking about but try this or variation as required on the dir command options.  It is only the filenames that is processed by the for command so there is no problem with any control characters like ><&() etc. messing anything up in the data like if we processed them line by line.

Steve

@echo off
(for /f "tokens=*" %%a in ('dir /b /o-d /a-d Order*.txt') do (
  type "%%~a"
  echo.
) > outputfile.txt
0
 
LVL 56

Expert Comment

by:Bill Prew
ID: 39695556
I think this would work in a small BAT file:

@echo off
set Blank="%TEMP%\_lf.txt"
echo.>%Blank%
copy file1.txt+%Blank%+file2.txt+%Blank%+file3.txt+%Blank%+file4.txt orderscomb.txt
del %Blank%

Open in new window

~bp
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 39695720
True Bill, messier than nice loop though :-)
0
 
LVL 56

Expert Comment

by:Bill Prew
ID: 39695833
Yes, really depends on how many files involved...

~bp
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 39702741
any particular reason why you gave bill a B grade for answering your question?
0
 

Author Comment

by:100questions
ID: 39703102
It should have been an A grade.
0

Featured Post

Secure Your WordPress Site: 5 Essential Approaches

WordPress is the web's most popular CMS, but its dominance also makes it a target for attackers. Our eBook will show you how to:

Prevent costly exploits of core and plugin vulnerabilities
Repel automated attacks
Lock down your dashboard, secure your code, and protect your users

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

No single Antivirus application (despite claims by manufacturers) will catch or protect you from all Virus / Malware or Spyware threats. That doesn't stop you from further protecting yourself however - and this article is to show you how.
Windows 10 Creator Update has just been released and I have it working very well on my laptop. Read below for issues, fixes and ideas.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…
Suggested Courses

623 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question