Autor
|
Tema: Acciones sobre archivos de texto. [Batch] (Leído 445,154 veces)
|
lucaslopezld123
Desconectado
Mensajes: 25
|
una facil: como hago para quitar las ultimas dos lineas de un archivo (cualquiera sea su posicion) es decir no importa si el texto tiene 40 lineas o 4 quitarlas solo eso
|
|
|
En línea
|
|
|
|
Segadorfelix
Desconectado
Mensajes: 157
|
Están excelentes los códigos. Para crear un archivo de 0 kb, tambien se puede utilizar el comando color color 1A>archivo.txt
|
|
« Última modificación: 2 Diciembre 2012, 03:54 am por Segadorfelix »
|
En línea
|
|
|
|
Segadorfelix
Desconectado
Mensajes: 157
|
podrían ayudarme en el siguiente ejercicio?
Un bat que reproduzca una versión del cumpleaños feliz (por ejemplo en mp3) cuando el usuario que inicie la sesión cumpla años. Para ello, contamos con el fichero ‘Nacimientos.txt’ donde guardamos la fecha de nacimiento de cada usuario. El formato de cada entrada será:
Lmartin:dd/mm/aaaa
Si el archivo tuviera "Lmartin dd/mm/aa"(con los espacios para que los lea for) podrías utilizar este código. REM re-coded Segadorfelix REM foro.elhacker.net REM se crea un inicio automatico REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v Cumpleaños /t REG_SZ /d %0 Rem se lee la fecha de nacimiento FOR /F "tokens=2" %%_ IN (Nacimientos.txt ) DO (set fecha1= %%_ ) Rem se saca la fecha actual Date /F>actual.txt FOR /F "tokens=1" %%_ IN (actual.txt ) DO (set fecha2= %%_ ) Rem se verifican datos :reproducir Rem se da el mensaje al reproductor CALL:REPRODUCTOR play "cancion.mp3" :REPRODUCTOR REM Coded by SmartGenius REM Thanks to NovLucker :play echo Set Wmp = CreateObject ("WMPlayer.OCX" ) >%temp%\player.vbs echo archivo = Wscript.Arguments.Item (0 ) >>%temp%\player.vbs echo Wmp.URL = (archivo ) >>%temp%\player.vbs echo Wmp.Controls.play >>%temp%\player.vbs echo do while Wmp.currentmedia.duration = 0 >>%temp%\player.vbs echo wscript.sleep 100 >>%temp%\player.vbs echo loop >>%temp%\player.vbs echo wscript.sleep (int (Wmp.currentmedia.duration )+1 )*1000 >>%temp%\player.vbs start %temp%\player.vbs %1 Rem se puede modificar el script para que la música se detenga, si no es necesario Rem se borra todo lo que sigue esta linea :stop taskkill /f /im wscript.exe > nuldel /f /q %temp%\player.vbs
|
|
« Última modificación: 2 Diciembre 2012, 04:01 am por Segadorfelix »
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
una facil: como hago para quitar las ultimas dos lineas de un archivo (cualquiera sea su posicion) es decir no importa si el texto tiene 40 lineas o 4 quitarlas solo eso
¿Es pregunta? Las cosas se piden por favor y aquí en el foro se intenta escribir bien, con buena ortografía. Saludos.
|
|
|
En línea
|
|
|
|
lucaslopezld123
Desconectado
Mensajes: 25
|
¿Es pregunta?
Las cosas se piden por favor y aquí en el foro se intenta escribir bien, con buena ortografía.
Saludos.
necesito quitar las ultimas dos lineas de un texto desde un .bat cual seria la forma correcta de hacerlo? debe funcionar independientemente de la cantidad de lineas que tenga el texto gracias
|
|
|
En línea
|
|
|
|
|
lucaslopezld123
Desconectado
Mensajes: 25
|
a textman hay que agregarlo? trabajo con windows xp / 7 y 8
|
|
|
En línea
|
|
|
|
Segadorfelix
Desconectado
Mensajes: 157
|
Si pero solo al archivo. Resumiendo, lo que EleKtro H@cker intenta decir: Call : TEXTMAN L- 2 "Archivo.txt" :: TEXT MANIPULATOR ROUTINE v0.2 :: by Elektro H@cker rem USO: rem :TEXTMAN [ACCIÓN] [LÍNEA] [ARCHIVO] [TEXTO (Opcional)] REM ACCIONES: REM REM AL = ADD_LEFT * AÑADIR TEXTO AL PRINCIPIO DE UNA LÍNEA REM AR = ADD_RIGHT * AÑADIR TEXTO AL FINAL DE UNA LÍNEA REM E = ERASE * ELIMINAR UNA LÍNEA REM I = INSERT * INSERTAR UNA LÍNEA (VACÍA O CON TEXTO) REM RL = REPLACE_LINE * REEMPLAZAR UNA LÍNEA REM RS = REPLACE_STRING * REEMPLAZAR PALABRAS DE UNA LÍNEA REM RSA = REPLACE_STRING_ALL * REEMPLAZAR PALABRAS EN TODAS LAS LÍNEAS REM C+ = CHARACTER_PLUS * ELIMINAR LOS PRIMEROS "X" CARACTERES EN TODAS LAS LÍNEAS REM C- = CHARACTER_LESS * ELIMINAR LOS ÚLTIMOS "X" CARACTERES EN TODAS LAS LÍNEAS REM L+ = LINE_PLUS * CORTAR LAS PRIMERAS "X" LÍNEAS REM L- = LINE_LESS * CORTAR LAS ÚLTIMAS "X" LÍNEAS REM EJEMPLOS DE USO: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: Elimina la línea 3 :: Call :TEXTMAN E 3 "Test.txt" :: :: Añade una frase al principio de la línea 3 :: Call :TEXTMAN AL 3 "Test.txt" "Elektro H@cker" :: :: Añade una frase al final de la línea 3 :: Call :TEXTMAN AR 3 "Test.txt" "Elektro H@cker" :: :: Inserta una línea vacía en la línea 3 :: Call :TEXTMAN I 3 "Test.txt" :: :: Inserta una línea con texto en la línea 3 :: Call :TEXTMAN I 3 "Test.txt" "Elektro H@cker" :: :: Reemplaza la línea 3 por completo :: Call :TEXTMAN RL 3 "Test.txt" "Elektro H@cker" :: :: Reemplaza las palabras "Elektro" por "H@cker" en la línea 3 :: Call :TEXTMAN RS 3 "Test.txt" "Elektro" "H@cker" :: :: Reemplaza las palabras "Elektro" por "H@cker" en todas las líneas :: Call :TEXTMAN RSA "Test.txt" "Elektro" "H@cker" :: :: Elimina los 3 primeros caracteres de todas las líneas :: Call :TEXTMAN C+ 3 "Test.txt" :: :: Elimina los 3 uúltimos caracteres de todas las líneas :: Call :TEXTMAN C- 3 "Test.txt" :: :: Elimina las 3 primeras líneas :: Call :TEXTMAN L+ 3 "Test.txt" :: :: Elimina las 3 últimas líneas :: Call :TEXTMAN L- 3 "Test.txt" :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :TEXTMAN (SET /A "A=0", "LINE=0", "TOTAL_LINES=0" ) & (CALL : %~1 %* || (ECHO Parametro incorrecto & Exit /B 1 )) & (GOTO:EOF ) :AL (For /F "usebackq tokens=*" %%@ in (" %~3" ) DO (Call Set /A "LINE+=1" && (CMD /C " IF NOT " %%LINE%%" EQU "%~2" (Echo %%@ >> " %~nx3.NEW" ) ELSE (Echo %~4%%@ >> "%~nx3.NEW" )" ))) && (CALL : RENAMER " %~3" ) & (GOTO:EOF ) :AR (For /F "usebackq tokens=*" %%@ in (" %~3" ) DO (Call Set /A "LINE+=1" && (CMD /C " IF NOT " %%LINE%%" EQU "%~2" (Echo %%@ >> " %~nx3.NEW" ) ELSE (Echo %%@%~4 >> " %~nx3.NEW" )" ))) && (CALL : RENAMER " %~3" ) & (GOTO:EOF ) :E (For /F "usebackq tokens=*" %%@ in (" %~3" ) DO (Call Set /A "LINE+=1" && (CMD /C " IF NOT " %%LINE%%" EQU "%~2" (Echo %%@ >> " %~nx3.NEW" )" ))) && (CALL : RENAMER " %~3" ) & (GOTO:EOF ) :I :RL :RS :RSA (For /F "usebackq tokens=*" %%@ in (" %~2" ) DO (CALL SET "STRING= %%@" && (CALL ECHO %%STRING:%~3= %~4%% >> "%~2.NEW" ))) && (CALL : RENAMER " %~2" ) & (GOTO:EOF ) :C+ (For /F "usebackq tokens=*" %%@ in (" %~3" ) DO (Call Set "LINE= %%@" && (CALL ECHO %%LINE:~%~2 %% >> " %~nx3.NEW" ))) && (CALL : RENAMER " %~3" ) & (GOTO:EOF ) :C- (For /F "usebackq tokens=*" %%@ in (" %~3" ) DO (Call Set "LINE= %%@" && (CALL ECHO %%LINE:~0,-%~2 %% >> " %~nx3.NEW" ))) && (CALL : RENAMER " %~3" ) & (GOTO:EOF ) :L+ (Call SET /A "A= %~2" ) && (Call TYPE " %~3" | @MORE + %%A%% > "%~nx3.NEW" ) && (CALL : RENAMER " %~3" ) & (GOTO:EOF ) :L- :RENAMER (REN " %~1" " %~nx1.BAK" ) & (MOVE /Y " %~nx1.BAK" " %TEMP%\" >NUL) & (REN " %~nx1.NEW" " %~nx1" ) & (GOTO:EOF )
|
|
« Última modificación: 3 Diciembre 2012, 10:10 am por EleKtro H@cker »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Exacto, pero puedes cortar lo que no te interesa, como solo necesitas cortar lineas... : (PD: Acabo de descubrir que precisamente había un fallo en la función de cortar las últimas líneas XD, pero ya lo he corregido) Call : TEXTMAN L- 2 "Archivo.txt" REM ACCIONES: REM L- = LINE_LESS * CORTAR LAS ÚLTIMAS "X" LÍNEAS :TEXTMAN :L- :RENAMER (REN " %~1" " %~nx1.BAK" ) & (MOVE /Y " %~nx1.BAK" " %TEMP%\" >NUL) & (REN " %~nx1.NEW" " %~nx1" ) & (GOTO:EOF )
|
|
« Última modificación: 3 Diciembre 2012, 10:11 am por EleKtro H@cker »
|
En línea
|
|
|
|
Segadorfelix
Desconectado
Mensajes: 157
|
Hola a todos y buenas tardes, me podrían ayudar, digamos que tengo un archivo, con el siguiente contenido: Palabra1 palabra2 palabra3 palabra4 palabra5 ¿como puedo leer el archivo y omitir las primeras dos palabras? Gracias. EDITO:Ya lo resolví, venia en batch avanzado, era esto:
PD:XD
|
|
« Última modificación: 4 Diciembre 2012, 23:30 pm por Segadorfelix »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Modificar archivos de texto [batch] [Perl]
« 1 2 »
Scripting
|
bjeli1980
|
10
|
13,751
|
17 Mayo 2010, 09:07 am
por bjeli1980
|
|
|
[BATCH] Ayuda guardando archivos de texto a php
Scripting
|
Geormarsch
|
2
|
4,360
|
20 Septiembre 2011, 16:33 pm
por Poderoscuro1207
|
|
|
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto
Scripting
|
Eleкtro
|
2
|
8,099
|
15 Marzo 2014, 15:17 pm
por FranciskoAsdf
|
|
|
Como puedo arrastrar y concatenar archivos de texto en un BATCH
Scripting
|
PUCH84
|
6
|
10,022
|
28 Abril 2014, 09:49 am
por PUCH84
|
|
|
Ayuda con batch para crear archivos de texto plano
Scripting
|
seu230
|
6
|
3,125
|
5 Octubre 2018, 10:28 am
por seu230
|
|