Autor
|
Tema: tema(batch) de un txt,crear varios txt, renombrado (Leído 4,692 veces)
|
neila
Desconectado
Mensajes: 4
|
hola, a ver si alguien puede echarme una mano, voy a tratar de explicar lo que quiero, creo que no será imposible.
tengo un archivo .txt (de unas 40.000 líneas, numeradas del 1 al 490 repetidamente hasta el final). necesito un ejecutable (bat), donde me divida el archivo en archivos de 490 líneas, que las 4 primeras líneas (no numeradas sean comunes a todos los archivos creados, que las 2 ultimas filas (no numeradas) sean comunes y que los nuevos archivos tengan el nombre del primero enumerados.
ZZZ X0.0 Y0.0 Z30.0 M601 M2 G0 Z-100.0 N1 G1 X240.1 Y324.9 Z3.6 F2 N2 G1 X239.5 Y325.5 Z4.9 F2 N3 G1 X238.8 Y326.1 Z4.9 F2 N4 G1 X238.2 Y326.8 Z2.4 F2 N5 G1 X237.6 Y327.4 Z1.4 F2 N6 G1 X247.5 Y317.5 F2 N490 G1 X240.7 Y324.3 Z0.5 F2 N1 G1 X240.1 Y324.9 Z3.6 F2 N2 G1 X239.5 Y325.5 Z4.9 F2 N3 G1 X238.8 Y326.1 Z4.9 F2 N4 G1 X238.2 Y326.8 Z2.4 F2 N5 G1 X237.6 Y327.4 Z1.4 F2 N6 G1 X237.0 Y328.0 Z0.9 F2 N490 G1 X236.4 Y328.6 Z0.7 F2 N1 G1 X235.7 Y329.2 Z3.3 F2 N2 G1 X235.1 Y329.8 Z4.1 F2 N3 G1 X234.5 Y330.5 Z0.8 F2 N4 G1 X233.9 Y331.1 Z1.7 F2 N5 G1 X233.3 Y331.7 Z4.9 F2 N6 G1 X232.6 Y332.3 Z3.7 F2 N490 G1 X232.0 Y332.9 Z1.1 F2 N1 G1 X231.4 Y333.6 Z0.6 F2 N2 G1 X230.8 Y334.2 Z0.6 F2 N3 G1 X230.2 Y334.8 Z4.2 F2 N4 G1 X229.6 Y335.4 Z5.0 F2 N5 G1 X228.9 Y336.0 Z5.0 F2 N6 G1 X228.3 Y336.7 Z5.0 F2 N490 G1 X226.5 Y338.5 Z1.0 F2 G0 Z-100.0 G0 Y0
en este ejemplo me tendrían que quedar 4 archivos. deZZZ.txt, tienen que salir ZZZ1.txt, ZZZ2.txt, ZZZ3.txt, ZZZ4.txt cada uno lleva: X0.0 Y0.0 Z30.0 M601 M2 G0 Z-100.0 N1 ............... N2 .............. N3 ............. N4............... N5................... N6.................... N490................... G0 Z-100.0 G0 Y0
gracias de antemano
|
|
|
En línea
|
|
|
|
engel lex
|
qué tienes hecho? qué no sabes?
el foro es para resolver dudas no para pedir trabajos o tarea hecha
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
neila
Desconectado
Mensajes: 4
|
lo siento, no volverá a pasar
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
No te recomiendo utilizar una herramienta limitada como es Batch para este tipo de tareas, por no decir que además es muy lento al procesar texto. Te muestro un ejemplo que puedes adaptar a tus necesidades por ti mismo: Source
Set "inputFile=.\Archivo.txt" Echo [+] ".\ZZZ %fileCount%.txt" For /F "UseBackQ Tokens=* Delims=" %%a In (" %inputFile%" ) Do ( (Echo !line!)>>".\zzzz!fileCount!.txt" If /I " !line:~0,4!" EQU "N490" ( Echo [+] ".\ZZZ !fileCount!.txt" ) )
Output
[+] ".\ZZZ1.txt" ZZZ X0.0 Y0.0 Z30.0 M601 M2 G0 Z-100.0 N1 G1 X240.1 Y324.9 Z3.6 F2 N2 G1 X239.5 Y325.5 Z4.9 F2 N3 G1 X238.8 Y326.1 Z4.9 F2 N4 G1 X238.2 Y326.8 Z2.4 F2 N5 G1 X237.6 Y327.4 Z1.4 F2 N6 G1 X247.5 Y317.5 F2 N490 G1 X240.7 Y324.3 Z0.5 F2
[+] ".\ZZZ2.txt" N1 G1 X240.1 Y324.9 Z3.6 F2 N2 G1 X239.5 Y325.5 Z4.9 F2 N3 G1 X238.8 Y326.1 Z4.9 F2 N4 G1 X238.2 Y326.8 Z2.4 F2 N5 G1 X237.6 Y327.4 Z1.4 F2 N6 G1 X237.0 Y328.0 Z0.9 F2 N490 G1 X236.4 Y328.6 Z0.7 F2
[+] ".\ZZZ3.txt" N1 G1 X235.7 Y329.2 Z3.3 F2 N2 G1 X235.1 Y329.8 Z4.1 F2 N3 G1 X234.5 Y330.5 Z0.8 F2 N4 G1 X233.9 Y331.1 Z1.7 F2 N5 G1 X233.3 Y331.7 Z4.9 F2 N6 G1 X232.6 Y332.3 Z3.7 F2 N490 G1 X232.0 Y332.9 Z1.1 F2
[+] ".\ZZZ4.txt" N1 G1 X231.4 Y333.6 Z0.6 F2 N2 G1 X230.8 Y334.2 Z0.6 F2 N3 G1 X230.2 Y334.8 Z4.2 F2 N4 G1 X229.6 Y335.4 Z5.0 F2 N5 G1 X228.9 Y336.0 Z5.0 F2 N6 G1 X228.3 Y336.7 Z5.0 F2 N490 G1 X226.5 Y338.5 Z1.0 F2
[+] ".\ZZZ5.txt" G0 Z-100.0 G0 Y0 Presione una tecla para continuar . . .
|
|
|
En línea
|
|
|
|
neila
Desconectado
Mensajes: 4
|
gracias, seguire tu consejo
|
|
|
En línea
|
|
|
|
neila
Desconectado
Mensajes: 4
|
hola de nuevo y gracias por la ayuda. ya he ajustado el bat a mis necesidades: @Echo OFF & SetLocal EnableDelayedExpansion
cd\ cd %1
Set "inputFile=.\%1.PRG"
Set /A "fileCount=1"
Echo [+] ".\%1%fileCount%.PRG"
For /F "UseBackQ Tokens=* Delims=" %%a In ("%inputFile%") Do (
Set "line=%%~a"
Echo !line!
(Echo !line!)>>".\%1!fileCount!.PRG"
If /I "!line:~0,4!" EQU "N490" (
Set /A "fileCount+=1"
Echo+
Echo [+] ".\%1!fileCount!.PRG"
)
)
Pause&Exit /B 0 Ahora de los archivos nuevos creados necesito eliminar los comienzos de línea N0,N1,N2,N3.....N490. llevo varias horas intentándolo y solo he conseguido eliminar la N, con esto: :camcomtb for /f "tokens=* delims=" %%i in (%1) do (set c= %%i&echo !c:N= !>> ZZZ1.PRG )
por favor pido ayuda, soy muy novato.
|
|
« Última modificación: 1 Marzo 2015, 19:46 pm por Eleкtro »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
1. Utiliza las etiquetas GeShi para insertar código, esto es un foro y hay que respetar unas normas de publicación.
Puedes utilizar el comando FindStr para filtrar el archivo descartando lineas que empeicen por "X": (Type "Archivo.txt" | FindStr /I /V "^N0 ^N1 ^N2 ^N3")> "Nuevo Archivo.txt Lee sobre el uso de rexpresiones regulares (RegEx). Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Batch: For X do (varios comandos)... No me esta funcionando...
Scripting
|
‡‡‡ Ðξλ†Ћ Щλ†ζЋ ‡‡‡
|
7
|
6,541
|
7 Diciembre 2008, 05:57 am
por ‡‡‡ Ðξλ†Ћ Щλ†ζЋ ‡‡‡
|
|
|
[Batch] Crear varios txt a partir de otro txt [Solucionado]
Scripting
|
bjeli1980
|
8
|
16,560
|
20 Septiembre 2012, 05:45 am
por Eleкtro
|
|
|
[batch] comparar una variable con varios valores
« 1 2 »
Scripting
|
moikano→@
|
13
|
17,414
|
22 Diciembre 2010, 19:25 pm
por moikano→@
|
|
|
[Batch] Renombrado masivo de archivos ass con prefijo de la subcarpeta
Scripting
|
ovichan
|
7
|
5,645
|
6 Octubre 2012, 17:47 pm
por ovichan
|
|
|
ayuda con renombrado de archivo txt em batch
Scripting
|
eltioted
|
1
|
2,487
|
30 Junio 2015, 00:19 am
por Eleкtro
|
|