Hola.
Como ya te han mencionado, puedes usar el comando
Copy. Recuerda que puedes usar los asteriscos para incluir todos los archivos del directorio de trabajo actual:
Copy /B "*.csv" "Destination File.csv"
Si deseas añadir un salto de linea entre cada unión, entonces primero debes comprobar si el archivo termina con un salto de linea/linea en blanco o no, y eso no es posible mediante batch ya que el comando
For por defecto descarta las lineas en blanco en la iteración de lineas de un archivo de texto plano. Así pues, esto sería una manera de hacerlo usando VisualBasic Script:
Script.vbsOption Explicit
Dim dir, file, fso, shell, reader, writer, _
outFilepath, curLine, allLines
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set shell = WScript.CreateObject("WScript.Shell")
Set dir = fso.GetFolder(shell.CurrentDirectory)
outFilepath = dir.Path & "\" & "New.csv"
Set writer = fso.CreateTextFile(outFilepath, True)
Set reader = Nothing
For Each file In dir.Files
If (LCase(fso.GetExtensionName(file.name)) = "csv") And (file.Path <> outFilepath) Then
Set reader = file.OpenAsTextStream(1, False)
Do Until reader.AtEndOfStream
curLine = reader.ReadLine()
If Not reader.AtEndOfStream Then
allLines = (allLines & curLine & vbCrLf)
Else
allLines = (allLines & curLine)
End If
Loop
reader.Close()
If (curLine <> "") Then
writer.write(allLines & vbCrLf)
Else
writer.write(allLines)
End If
End If
allLines = ""
Next
writer.Close()
WScript.Quit(0)
¡Saludos!.