hola quiero unir varios archivos .csv pero los une uno seguido del otro hay manera de unirlos con un espacio o uno abajo de otro ?
ejemplo
casa;hogar:humano;mujercasa;hogar;humano;mujer
los quisiera asi
casa;hogar;humano;mujer
casa;hogar:humano;mujer
Mod: Títulos descriptivos.[/tt]
¿Que usas para unirlos? Puedes poner algo de contenido de ellos para hacernos la idea?
Saludos
Bla,bla,bla...
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.vbs
Option 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!.