Quiero juntar dos csv en uno pero en columnas separadas

Tengo un bat al cual me da info de un nslookup lo que quiero es que me junte dos ficheros .csv en uno pero en diferentes columnas cada fichero, el bat es este:

@ECHO OFF
CD C:\Users\AirON\Desktop
for /F "tokens=*" %%a in (equipos.txt) do (
Nslookup %%a >> log1.txt
)
type log1.txt | find "Nombre">> testlog1.csv
type log1.txt | find "Address">> testlog2.csv
Copy testlog1.csv + testlog2. Csv PRUEBAFINALJUNTOS. Csv
start log1.txt
Pause

1 respuesta

Respuesta

Como parece que de momento nadie te dice nada voy a atreverme yo a hacerlo.

En primer lugar te diría que la extensión CSV de un archivo no garantiza que sea un verdadero CSV. Los CSVs son archivos de texto que pueden abrirse en Excel porque los diferentes campos de cada línea están separados por un carácter regional predeterminado (por ejemplo la coma para los angloparlantes y el punto y coma para español de España). El nombre de esa extensión viene de "Comma Separated Values" (valores separados por coma). De modo que tal como propones las cosas, yo diría que simplemente quieres fusionar línea a línea dos archivos de texto: situar en la primera línea de un nuevo archivo la primera línea de uno de ellos seguida de la primera línea del segundo y así sucesivamente.

Te sugiero que pruebes con esto:

@echo off
if exist pruebafinaljuntos.csv del pruebafinaljuntos.csv
set /a MaxLin=0
for /f "tokens=* delims=" %%a in (testlog1.csv) do (set /a MaxLin+=1)
set /a lin=0
for /f "tokens=* delims=" %%a in (testlog1.csv) do (
   for /f "tokens=* delims=" %%x in (testlog2.csv) do (
      echo %%a %%x >> pruebafinaljuntos.csv
      goto :bucle
   )
)
:bucle
set /a lin+=1
for /f "skip=%lin% tokens=* delims=" %%a in (testlog1.csv) do (
   for /f "skip=%lin% tokens=* delims=" %%x in (testlog2.csv) do (
      echo %%a %%x >> pruebafinaljuntos.csv
      goto :sig
   )
)
:sig
if %lin% GEQ %MaxLin% goto :fin
goto :bucle
:Fin

Aunque si de verdad quieres tratarlo como CSV con configuración regional "español de España" deberías poner un ";" en lugar del espacio entre %%a y %%x

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas