Ms-Dos - concatenar cada 4 lineas

 
Vista:
sin imagen de perfil

concatenar cada 4 lineas

Publicado por nicolas (9 intervenciones) el 03/02/2016 12:09:54
Buenos días,
acudo a este foro de nuevo con una nueva pregunta. De nuevo, gracias de antemano por su tiempo!

tengo el siguiente txt
linea1[espacio]
linea2
linea3
linea4
linea5
linea6
linea7
linea8
linea9
...
(despues de los caracteres de cada linea hay un espacio en blanco)


y querría formatarlo para poder recoger datos desde SQL, por lo que intentaba concatenar cada cuatro lineas en una sola, manteniedo los espacios que tengo en cada linea, para conseguir lo siguiente:
linea1 linea2 linea3 linea4
linea5 linea6 linea7 linea8
linea9....

Le estoy dando vueltas al FOR / F, pero no veo como indicarle que realice la acción cada 4 lineas...

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

concatenar cada 4 lineas

Publicado por Antoni Masana (811 intervenciones) el 05/02/2016 08:23:48
Esto hace lo que quieres

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off
 
if exist File_2.txt del File_2.txt
set Num=0
set Lin=
 
FOR /F %%a IN (File_1.txt) DO CALL :Lista %%a
set Num=4
if %Num% GTR 0 call :Lista
Type File_2.txt
goto:EOF
 
:Lista
   if %Num% EQU 4 echo.%Lin% >>File_2.txt
   if %Num% EQU 4 set Lin=
   if %Num% EQU 4 set Num=0
 
   if %Num% EQU 0 set Lin=%1
   if %Num% GTR 0 set Lin=%Lin% %1
   set /a Num+=1


El fichero FILE_1.TXT es el origen de los datos
El fichero FILE_2.TXT es el resultado final.

Si tienes problemas para entender el BAT te lo comentare pero es mejor que consultes primero las ayudas de los comandos:

1
2
3
4
C:\> SET  /?
C:\> FOR  /?
C:\> IF   /?
C:\> CALL /?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar