Ms-Dos - Cortar líneas y crear nuevo txt

 
Vista:
sin imagen de perfil

Cortar líneas y crear nuevo txt

Publicado por Cris (21 intervenciones) el 02/07/2013 12:56:45
Buenos días,

Intento "cortar" las 10 primeras líneas de un fichero1.txt y con ellas, crear un nuevo fichero2.txt.

Lo he intentado, pero no sé hacerlo. Si alguien puede ayudarme se lo agradezco.

Si este código está bien y se supone que elimina la línea 2, en Windows7 no funciona.

@echo off
(
ECHO 2d
ECHO E
) | EDLIN /B fichero1.txt > nul 2>&1


Gracias de antemano.
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

Cortar líneas y crear nuevo txt

Publicado por Antoni Masana (811 intervenciones) el 02/07/2013 13:20:23
Deberias ver la ayuda del comando FOR

C:\> FOR /?

La sintaxis seria esta

FOR /F "skip=10 delims=^" %%a in (File_1.txt) do echo %%a >>File_2.txt

Es un poco complejo pero funciona cuando lo entiendes.
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
sin imagen de perfil

Cortar líneas y crear nuevo txt

Publicado por Cris (21 intervenciones) el 02/07/2013 14:35:26
Antes de nada gracias.

Funciona a medias.

Crea el fichera2.txt con todas las líneas del fichero1.txt excepto las 10 primeras, cuando ese tendría que ser su contenido.

El fichero1.txt queda intacto, cuando tendría que eliminar las 10 primeras líneas.


Espero haberme sabido explicar.

Gracias de nuevo
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
sin imagen de perfil

Cortar líneas y crear nuevo txt

Publicado por Cris (21 intervenciones) el 03/07/2013 15:25:17
Buenas tardes,

He buscado información sobre C:\> FOR /?
y "casi"" lo conseguí en Windows XP pero no en Windows 7.

Pude hacerlo con csplit.exe aunque me gustaría saber
como se hace en MS-DOS.

Pongo el código por si le sirve a alguien.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
mode con cols=70 lines=20
REM COLOR 17
Title: Reconstruir Libro de visitas de Trusky
echo.
echo.
 
rem "Crea" el fichero nuevo guestbook493 y le inserta 10 primeras líneas que
corta del fichero guestbook.txt
 
rem Realmente crea los ficheros:
rem guestbook4931
rem guestbook4930
 
csplit" -f guestbook493" -k -n 1 -s guestbook.txt" 11

rem Los renombro 

rename guestbook4931 guestbook.txt

rename guestbook4930 guestbook493.txt



Gracias .
Un saludo
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 A.H.H.

Cortar líneas y crear nuevo txt

Publicado por A.H.H. (216 intervenciones) el 06/07/2013 22:30:52
Hola en .bat seria asi:

1
2
3
4
5
6
7
8
9
10
11
@echo off
 
set /a contador=1
for /F "tokens=*" %%i in (TEXTO1.txt) do (set linea=%%i&call :cuentalineas)
 
:cuentalineas
 
if %contador% GTR 10 EXIT FOR
echo %linea%>>TEXTO2.TXT
set /a contador += 1
GOTO:EOF



Lo que hace la etiqueta cuentalineas es contar 10 líneas del archivo texto1.txt y salir del bucle for para ponerlas en el archivo texto2.txt

Espero te sirva

Salu2
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
sin imagen de perfil

Cortar líneas y crear nuevo txt

Publicado por Cris (21 intervenciones) el 06/07/2013 23:06:44
Buenas noches A.H.H.,

Agradezco la ayuda pero no funciona. El Texto1.txt queda con todas sus líneas y sólo copia la línea 10 al Texto2.txt.

Llevo días intentándolo. Algunos ejemplos han funcionado en XP pero en Windows7 no hay manera.
Supongo que un problema de sintaxis, pero no doy con ello.

Gracias de todas formas.
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 A.H.H.

Cortar líneas y crear nuevo txt

Publicado por A.H.H. (216 intervenciones) el 07/07/2013 00:10:19
Hola el ejemplo lo he hecho en Windows 7 y a mi me funciona....
Acuérdate de poner dos >> para redireccionar.Si pones solo un > te escribe la ultima línea solamente.,,,
Copia y pega el ejemplo como lo he puesto y haz la prueba....
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
sin imagen de perfil

Cortar líneas y crear nuevo txt

Publicado por Cris (21 intervenciones) el 07/07/2013 00:23:02
Hola, A.H.H.,

Ahora si que no entiendo nada. He copiado y pegado tu ejemplo y lo dicho, el Texto1 (en él escribo 15 números, uno por cada línea) queda intacto y en el Texto2 aparece (copio y pego)

ECHO est  desactivado.
10

Mañana probaré el código en XP a ver que hace.
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 A.H.H.

Cortar líneas y crear nuevo txt

Publicado por A.H.H. (216 intervenciones) el 07/07/2013 00:31:41
No pongas números al principio en el texto1 escribe frases...puedes poner un numero seguido deuna
frase por ejemplo 1lalalalalalaa
pero numero solo no se confunde con el contador.
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
sin imagen de perfil

Cortar líneas y crear nuevo txt

Publicado por Cris (21 intervenciones) el 07/07/2013 00:38:44
¡Casi!

Poniendo letras copia las 10 primeras líneas al texto2, pero el texto1, queda intacto.

Gracias una vez más.
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 A.H.H.

Cortar líneas y crear nuevo txt

Publicado por A.H.H. (216 intervenciones) el 07/07/2013 00:53:14
hola
ahhh! pero quieres que desaparezcan las del texto1 después de coparlas al texto2?
espera habría que ir escribiendo una línea en blanco al texto1 a la vez que cuenta y las pasa al dos
hago pruebas.....
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
sin imagen de perfil

Cortar líneas y crear nuevo txt

Publicado por Cris (21 intervenciones) el 07/07/2013 01:00:44
Muchas gracias por el interés y la ayuda. Yo me manejo muy, muy mal con MS-DOS.

Un saludo
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 A.H.H

Cortar líneas y crear nuevo txt

Publicado por A.H.H (216 intervenciones) el 07/07/2013 11:59:28
Hola consegui el efecto:

copia y pega el ejemplo para probarlo.
Puse en texto1.txt 15 frases cono estas:
1fraseuno
2frasedos
...............
15frasequince

Lo que hace el código es coger de texto1 las 10 primeras frases y pasarlas a texto2, quedando luego en texto1 de la frase 11 en adelante.
También en la etiqueda :efectocortar creamos un archivo temporal cortar.txt que luego eliminamos.
creo que es el efecto que querias no??

código:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
 
set /a contador=1
 
for /F "tokens=*" %%i in (texto1.txt) do (set linea=%%i&call :cuentalineas)
 
:cuentalineas
if %contador% GTR 10 (GOTO :EFECTOCORTAR)
echo %linea%>>texto2.txt
set /a contador += 1
GOTO:EOF
 
:EFECTOCORTAR
FOR /F "SKIP=10 tokens=*" %%j in (texto1.txt) do (echo %%j>>cortar.txt)>nul
xcopy "cortar.txt" "texto1.txt" /Y>NUL
DEL "cortar.txt" /f /q
EXIT FOR
EXIT




saLU2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Cortar líneas y crear nuevo txt

Publicado por Cris (21 intervenciones) el 07/07/2013 12:08:49
Sí!!!

Funciona tal como necesitaba.

Muchísimas gracias por todo A.H.H.

Un saludo
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

eliminar solo 1 linea

Publicado por walter (1 intervención) el 13/06/2014 23:36:41
hola quisiera de un archivo de texto poder eliminar solo la primera linea y que se guarde en el archivo. en dos usando un batch.alguna forma sin tener que usar el for.
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