Ms-Dos - Prefijos dentro de txt

   
Vista:

Prefijos dentro de txt

Publicado por Muldrigo (3 intervenciones) el 17/11/2015 21:08:13
Buenas a todos

Ando un poco perdido, necesitaría hacer un bat que me inserte en cada linea de un txt un prefijo (preferiblemente autoincrementado en cada linea), algo así:

ORIGINAL
linea1
linea2
linea3
linea4

EDITADO
N10linea1
N20linea2
N30linea3
N40linea4

Sería muy complicado? agradezco la ayuda.

Saludos
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

Prefijos dentro de txt

Publicado por Antoni Masana (269 intervenciones) el 19/11/2015 09:15:09
Un sencillo codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo offx
 
setlocal ENABLEDELAYEDEXPANSION
 
set NUM=10
 
echo linea1> FILE_1.TXT
echo linea2>>FILE_1.TXT
echo linea3>>FILE_1.TXT
echo linea4>>FILE_1.TXT
 
TYPE nul >FILE_2.TXT
 
FOR /F %%A IN (FILE_1.TXT) DO (
    ECHO N!NUM!%%A >>FILE_2.TXT
    SET /A NUM+=10
   )
COPY FILE_1.TXT FILE_1.BAK
COPY FILE_2.TXT FILE_1.TXT
 
TYPE FILE_1.TXT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Prefijos dentro de txt

Publicado por Muldrigo (3 intervenciones) el 19/11/2015 17:35:36
Muchas gracias por el código esta genial, sobretodo el detalle de hacer el BAK.

Lo cambié ligeramente para adaptarlo de la siguiente forma:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
@echo off
title Autonumerador Lineas Postprocesado
 
cls
 
echo ********************
 
echo ***-=11/2015=-***
 
echo ********************
 
echo     Este programa agrega una autonumeracion a las
echo     lineas de un archivo de texto plano. (txt)
echo ********************
 
setlocal ENABLEDELAYEDEXPANSION
 
 
set /p ORIGINAL=Escribe el nombre del archivo a numerar:
 
set NUM=10
 
 
TYPE nul >Numerado.TXT
 
 
 
FOR /F %%A IN (%ORIGINAL%.TXT) DO (
 
    ECHO N!NUM!%%A >>"Numerado".TXT
 
    SET /A NUM+=10
 
   )
 
 
COPY %ORIGINAL%.TXT %ORIGINAL%.BAK

Para que el usuario ingrese el nombre del archivo a autonumerar, y que no modifique el original sino que cree un archivo nuevo editado.


Pero al hacer una prueba mas completa detecté un problema:

Archivo ORIGEN

1
2
3
4
El veloz murciélago hindú comía feliz cardillo y kiwi.
El veloz murciélago hindú comía feliz cardillo y kiwi.
El veloz murciélago hindú comía feliz cardillo y kiwi.
El veloz murciélago hindú comía feliz cardillo y kiwi.

Archivo Numerado
1
2
3
4
N10El
N20El
N30El
N40El


Es decir se come el resto de la linea después del primer espacio, tiene alguna solución posible?


Muchas gracias por la ayuda.
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

Prefijos dentro de txt

Publicado por Muldrigo (3 intervenciones) el 19/11/2015 21:44:57
Bueno esto que pregunto lo solucioné agregando los "tokens=*"
1
FOR /F "tokens=*" %%A IN (%ORIGINAL%.TXT) DO (

Ahora aunque ya funciona, me gustaría agregar la opción de numerar a parttir de una linea concreta, es esto posible?

Saludos y gracias !
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
Imágen de perfil de Antoni Masana

Prefijos dentro de txt

Publicado por Antoni Masana (269 intervenciones) el 20/11/2015 07:34:36
Solucionado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@echo off
title Autonumerador Lineas Postprocesado
cls
echo ********************
echo ***-=11/2015=-***
echo ********************
echo     Este programa agrega una autonumeracion a las
echo     lineas de un archivo de texto plano. (txt)
echo ********************
 
setlocal ENABLEDELAYEDEXPANSION
 
set /p ORIGINAL=Escribe el nombre del archivo a numerar:
 
set NUM=10
set cont=1
set salta=3
TYPE nul >Numerado.TXT
 
FOR /F "delims=·" %%A IN (%ORIGINAL%.TXT) DO (
    if !Cont! LEQ %salta% ECHO %%A >>"Numerado".TXT
    if !Cont! GTR %salta% ECHO N!NUM!%%A >>"Numerado".TXT
    if !Cont! GTR SET /A NUM+=10
    SET /A Cont+=1
    )
COPY %ORIGINAL%.TXT %ORIGINAL%.BAK


Es este caso el delims y el tokens del for solucionan el mismo problema de dos formas distintas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar