elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Acciones sobre archivos de texto. [Batch]
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 ... 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 Ir Abajo Respuesta Imprimir
Autor Tema: Acciones sobre archivos de texto. [Batch]  (Leído 445,154 veces)
lucaslopezld123

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #210 en: 1 Diciembre 2012, 21:00 pm »

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 Desconectado

Mensajes: 157



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #211 en: 1 Diciembre 2012, 22:32 pm »

Están excelentes los códigos.
Para crear un archivo de 0 kb, tambien se puede utilizar el comando color
Código
  1. color 1A>archivo.txt


« Última modificación: 2 Diciembre 2012, 03:54 am por Segadorfelix » En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #212 en: 1 Diciembre 2012, 23:42 pm »

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.
Código
  1. @echo off
  2. REM re-coded Segadorfelix
  3. REM foro.elhacker.net
  4. REM se crea un inicio automatico
  5. REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v Cumpleaños /t REG_SZ /d %0
  6. Rem se lee la fecha de nacimiento
  7. FOR /F "tokens=2" %%_ IN (Nacimientos.txt) DO (set fecha1=%%_)
  8. Rem se saca la fecha actual
  9. Date /F>actual.txt
  10. FOR /F "tokens=1" %%_ IN (actual.txt) DO (set fecha2=%%_)
  11. del actual.txt
  12. Rem se verifican datos
  13. IF %fecha1%==%fecha2% goto reproducir else (exit)
  14. :reproducir
  15. Rem se da el mensaje al reproductor
  16. CALL:REPRODUCTOR play "cancion.mp3"
  17. :REPRODUCTOR
  18. REM Coded by SmartGenius
  19. REM Thanks to NovLucker
  20. if ["%1"]==[""] (goto :Help)
  21. if ["%1"]==["stop"] (call :stop &goto :eof)
  22. if ["%1"]==["play"] (if not ["%~2"]==[""] (call :play "%~2" >nul)) else (goto :Help)
  23. goto:eof
  24.  
  25. :play
  26. echo Set Wmp = CreateObject("WMPlayer.OCX") >%temp%\player.vbs
  27. echo archivo = Wscript.Arguments.Item(0) >>%temp%\player.vbs
  28. echo Wmp.URL = (archivo) >>%temp%\player.vbs
  29. echo Wmp.Controls.play >>%temp%\player.vbs
  30. echo do while Wmp.currentmedia.duration = 0 >>%temp%\player.vbs
  31. echo wscript.sleep 100 >>%temp%\player.vbs
  32. echo loop >>%temp%\player.vbs
  33. echo wscript.sleep (int(Wmp.currentmedia.duration)+1)*1000 >>%temp%\player.vbs
  34. start %temp%\player.vbs %1
  35. goto :eof
  36. Rem se puede modificar el script para que la música se detenga, si no es necesario
  37. Rem se borra todo lo que sigue esta linea
  38. :stop
  39. taskkill /f /im wscript.exe > nul
  40. del /f /q %temp%\player.vbs
  41. goto :eof
  42.  
« Última modificación: 2 Diciembre 2012, 04:01 am por Segadorfelix » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #213 en: 2 Diciembre 2012, 02:51 am »

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

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
lucaslopezld123

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #214 en: 2 Diciembre 2012, 16:37 pm »

¿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

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #215 en: 2 Diciembre 2012, 17:34 pm »

necesito quitar las ultimas dos lineas de un texto desde un .bat

> [BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto

Código
  1. @Echo OFF
  2. Call :TEXTMAN L- 2 "Archivo.txt"
  3. Pause&Exit

Saludos.
En línea



lucaslopezld123

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #216 en: 2 Diciembre 2012, 23:46 pm »

a textman hay que agregarlo?
trabajo con windows xp / 7 y 8
En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #217 en: 3 Diciembre 2012, 04:30 am »

Si pero solo al archivo.
Resumiendo, lo que EleKtro H@cker intenta decir:
Código
  1.  
  2.    @Echo OFF
  3.    Call :TEXTMAN L- 2 "Archivo.txt"
  4.    Pause&Exit
  5.  
  6.  
  7.     :: TEXT MANIPULATOR ROUTINE v0.2
  8.    :: by Elektro H@cker
  9.  
  10.     rem USO:
  11.   rem  :TEXTMAN [ACCIÓN] [LÍNEA] [ARCHIVO] [TEXTO (Opcional)]
  12.  
  13.      
  14.     REM ACCIONES:
  15.    REM
  16.    REM  AL  = ADD_LEFT           * AÑADIR TEXTO AL PRINCIPIO DE UNA LÍNEA
  17.    REM  AR  = ADD_RIGHT          * AÑADIR TEXTO AL FINAL DE UNA LÍNEA
  18.    REM  E   = ERASE              * ELIMINAR UNA LÍNEA
  19.    REM  I   = INSERT             * INSERTAR UNA LÍNEA (VACÍA O CON TEXTO)
  20.    REM  RL  = REPLACE_LINE       * REEMPLAZAR UNA LÍNEA
  21.    REM  RS  = REPLACE_STRING     * REEMPLAZAR PALABRAS DE UNA LÍNEA
  22.    REM  RSA = REPLACE_STRING_ALL * REEMPLAZAR PALABRAS EN TODAS LAS LÍNEAS
  23.    REM  C+  = CHARACTER_PLUS     * ELIMINAR LOS PRIMEROS "X" CARACTERES EN TODAS LAS LÍNEAS
  24.    REM  C-  = CHARACTER_LESS     * ELIMINAR LOS ÚLTIMOS  "X" CARACTERES EN TODAS LAS LÍNEAS
  25.    REM  L+  = LINE_PLUS          * CORTAR LAS PRIMERAS "X" LÍNEAS
  26.    REM  L-  = LINE_LESS          * CORTAR LAS ÚLTIMAS  "X" LÍNEAS
  27.  
  28.      
  29.     REM EJEMPLOS DE USO:
  30.  
  31.     :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
  32.    ::
  33.    :: Elimina la línea 3
  34.    :: Call :TEXTMAN E 3 "Test.txt"
  35.    ::
  36.    :: Añade una frase al principio de la línea 3
  37.    :: Call :TEXTMAN AL 3 "Test.txt" "Elektro H@cker"
  38.    ::
  39.    :: Añade una frase al final de la línea 3
  40.    :: Call :TEXTMAN AR 3 "Test.txt" "Elektro H@cker"
  41.    ::
  42.    :: Inserta una línea vacía en la línea 3
  43.    :: Call :TEXTMAN I 3 "Test.txt"
  44.    ::
  45.    :: Inserta una línea con texto en la línea 3
  46.    :: Call :TEXTMAN I 3 "Test.txt" "Elektro H@cker"
  47.    ::
  48.    :: Reemplaza la línea 3 por completo
  49.    :: Call :TEXTMAN RL 3 "Test.txt" "Elektro H@cker"
  50.    ::
  51.    :: Reemplaza las palabras "Elektro" por "H@cker" en la línea 3
  52.    :: Call :TEXTMAN RS 3 "Test.txt" "Elektro" "H@cker"
  53.    ::
  54.    :: Reemplaza las palabras "Elektro" por "H@cker" en todas las líneas
  55.    :: Call :TEXTMAN RSA "Test.txt" "Elektro" "H@cker"
  56.    ::
  57.    :: Elimina los 3 primeros caracteres de todas las líneas
  58.    :: Call :TEXTMAN C+ 3 "Test.txt"
  59.    ::
  60.    :: Elimina los 3 uúltimos caracteres de todas las líneas
  61.    :: Call :TEXTMAN C- 3 "Test.txt"
  62.    ::
  63.    :: Elimina las 3 primeras líneas
  64.    :: Call :TEXTMAN L+ 3 "Test.txt"
  65.    ::
  66.    :: Elimina las 3 últimas líneas
  67.    :: Call :TEXTMAN L- 3 "Test.txt"
  68.    ::
  69.    :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::
  70.  
  71.  
  72. :TEXTMAN
  73. (SET /A "A=0", "LINE=0", "TOTAL_LINES=0")  &  (CALL :%~1 %* || (ECHO Parametro incorrecto & Exit /B 1)) & (GOTO:EOF)
  74. :AL
  75. (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)
  76. :AR
  77. (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)
  78. :E
  79. (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)
  80. :I
  81. (For /F "usebackq tokens=*" %%@ in ("%~3") DO (Call Set /A "LINE+=1" && (CMD /C "IF     "%%LINE%%" EQU "%~2" (IF NOT "%~4" EQU "" (Echo %~4 >> "%~nx3.NEW") ELSE (Echo. >> "%~nx3.NEW"))" & Echo %%@ >> "%~nx3.NEW"))) && (CALL :RENAMER "%~3") & (GOTO:EOF)
  82. :RL
  83. (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)
  84. :RS
  85. (For /F "usebackq tokens=*" %%@ in ("%~3") DO (Call Set /A "LINE+=1" && (CMD /C "IF NOT "%%LINE%%" EQU "%~2" (Echo %%@ >> "%~nx3.NEW") ELSE (CALL SET "STRING=%%@" && CALL ECHO %%STRING:%~4=%~5%% >> "%~nx3.NEW")"))) && (CALL :RENAMER "%~3") & (GOTO:EOF)
  86. :RSA
  87. (For /F "usebackq tokens=*" %%@ in ("%~2") DO (CALL SET "STRING=%%@" && (CALL ECHO %%STRING:%~3=%~4%% >> "%~2.NEW"))) && (CALL :RENAMER "%~2") & (GOTO:EOF)
  88. :C+
  89. (For /F "usebackq tokens=*" %%@ in ("%~3") DO (Call Set   "LINE=%%@" && (CALL ECHO %%LINE:~%~2%% >>    "%~nx3.NEW"))) && (CALL :RENAMER "%~3") & (GOTO:EOF)
  90. :C-
  91. (For /F "usebackq tokens=*" %%@ in ("%~3") DO (Call Set   "LINE=%%@" && (CALL ECHO %%LINE:~0,-%~2%% >> "%~nx3.NEW"))) && (CALL :RENAMER "%~3") & (GOTO:EOF)
  92. :L+
  93. (Call SET /A "A=%~2") && (Call TYPE "%~3" | @MORE +%%A%% > "%~nx3.NEW") && (CALL :RENAMER "%~3") & (GOTO:EOF)
  94. :L-
  95. (FOR /F %%X IN ('TYPE "%~3"') DO (CALL SET /A "TOTAL_LINES+=1")) & (CALL SET /A "TOTAL_LINES-=%~2-1") & (For /F "usebackq tokens=*" %%@ in ("%~3") DO (Call Set /A "LINE+=1" & Call echo "%%LINE%%!!|@%%TOTAL_LINES%%" >NUL) && (CALL :RENAMER "%~3" && GOTO:EOF) || (Echo %%@ >> "%~nx3.NEW"))
  96. :RENAMER
  97. (REN "%~1" "%~nx1.BAK") & (MOVE /Y "%~nx1.BAK" "%TEMP%\" >NUL) & (REN "%~nx1.NEW" "%~nx1") & (GOTO:EOF)
  98.  
« Última modificación: 3 Diciembre 2012, 10:10 am por EleKtro H@cker » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #218 en: 3 Diciembre 2012, 10:07 am »

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)

Código
  1. @Echo OFF
  2.  
  3. Call :TEXTMAN L- 2 "Archivo.txt"
  4. Pause&Exit
  5.  
  6. REM ACCIONES:
  7. REM  L-  = LINE_LESS          * CORTAR LAS ÚLTIMAS  "X" LÍNEAS
  8.  
  9. :TEXTMAN
  10. :L-
  11. (FOR /F %%X IN ('TYPE "%~3"') DO (CALL SET /A "TOTAL_LINES+=1")) & (CALL SET /A "TOTAL_LINES-=%~2-1") & (For /F "usebackq tokens=*" %%@ in ("%~3") DO (Call Set /A "LINE+=1" & Call echo "%%LINE%%!!|@%%TOTAL_LINES%%" >NUL) && (CALL :RENAMER "%~3" && GOTO:EOF) || (Echo %%@ >> "%~nx3.NEW"))
  12. :RENAMER
  13. (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 Desconectado

Mensajes: 157



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #219 en: 4 Diciembre 2012, 22:48 pm »

Hola a todos y buenas tardes, me podrían ayudar, digamos que tengo un archivo, con el siguiente contenido:
Citar
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:
Código
  1. FOR /F "tokens=3*" %r IN (archivo.txt) DO (echo %r %s)
PD:XD
« Última modificación: 4 Diciembre 2012, 23:30 pm por Segadorfelix » En línea

Páginas: 1 ... 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 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modificar archivos de texto [batch] [Perl] « 1 2 »
Scripting
bjeli1980 10 13,751 Último mensaje 17 Mayo 2010, 09:07 am
por bjeli1980
[BATCH] Ayuda guardando archivos de texto a php
Scripting
Geormarsch 2 4,360 Último mensaje 20 Septiembre 2011, 16:33 pm
por Poderoscuro1207
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto
Scripting
Eleкtro 2 8,099 Último mensaje 15 Marzo 2014, 15:17 pm
por FranciskoAsdf
Como puedo arrastrar y concatenar archivos de texto en un BATCH
Scripting
PUCH84 6 10,022 Último mensaje 28 Abril 2014, 09:49 am
por PUCH84
Ayuda con batch para crear archivos de texto plano
Scripting
seu230 6 3,125 Último mensaje 5 Octubre 2018, 10:28 am
por seu230
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines