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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8
11  Programación / Scripting / Re: [Ayuda] Guardar Información en Batch en: 21 Mayo 2019, 09:07 am
Madre mia, pedazo de guía!! Muchas gracias Elektro
12  Programación / Scripting / Re: [Ayuda] Guardar Información en Batch en: 20 Mayo 2019, 09:22 am
en batch basta con crearlas antes de usarlas
13  Programación / Scripting / Re: [Ayuda] Guardar Información en Batch en: 16 Mayo 2019, 08:57 am
numeros y letras.

Ahora con lo aprendido haz pruebas y vete haciendo versiones del programa. Por ejemplo que te pregunte tu nombre y luego que te diga pepito tiene 10526 dias. Si guardas las versiones con nombres diferentes no vas a romper ni perder nada por hacer todas las pruebas que quieras.

14  Programación / Scripting / Re: [Ayuda] Guardar Información en Batch en: 15 Mayo 2019, 10:19 am
La pregunta es bastante basica y generica. Como casi nunca puedo responder a las preguntas complejas aprovechare para hacer mi aportación, y aunque mis conocimientos son limitados si que tengo mucha practica en iniciar a la gente en la programación en mi trabajo. La explicación te servira para cualquier lenguaje de programación, aunque en el ejemplo usaremos batch tal y como preguntas en el asunto. Voy a suponer tambien que has buscado por internet y no has comprendido las respuestas.

Una variable es un lugar donde guardar datos. Imaginemos que quieres hacer un programa que le diga al usuario cuantos dias cumple el dia de su cumpleaños (imaginando para simplificar que todos los años tienen 365 dias). Nuestro programa tendrá que multiplicar los años por los dias del año, pero como los años que tiene el usuario pueden variar le preguntaremos al usuario y los almacenamos en una variable que en este caso le llamaremos aniosusuario.

Crear una variable y darle un valor se hace asi:
Código
  1. set dias=365
Aunque en este caso el valor no varie tiene ciertas ventajas usar variables aquí tambien.

Y para preguntar al usuario cuantos años tiene y almacenar el valor en una variable para operar con ella seria asi:
Código
  1. set /p aniosusuario=Cuantos años has cumplido hoy?

Aqui el programa completo:
Código
  1. @echo off
  2. :inicio
  3. cls
  4. set /p aniosusuario=Cuantos años has cumplido hoy?
  5. set dias=365
  6. set /a resultado=%aniosusuario% * %dias%
  7. echo tienes %resultado% dias
  8. goto inicio

Aqui el programa comentando lo que hace cada linea:
Código
  1. @echo off
  2.  
  3. REM Ponemos REM para crear un comentario, no tiene incidencia en el programa, es solo para guia del programador
  4.  
  5. REM Ponemos una etiqueta llamada inicio para que cuando acabe el programa con goto vuelva a inicio y comience de nuevo
  6. :inicio
  7.  
  8. REM con cls borramos la pantalla cada vez
  9. cls
  10.  
  11. REM Preguntamos al usuario cuantos años tiene y lo guardamos en la variable años que creamos con set
  12. set /p aniosusuario=Cuantos años has cumplido hoy?
  13.  
  14. REM creamos la variable dias y le asignamos el valor
  15. set dias=365
  16.  
  17. REM para operar con las variables creadas ponemos % al principio y al final de la variable
  18. set /a resultado=%aniosusuario% * %dias%
  19.  
  20. REM aqui mostramos el resultado intercalando el texto con la variable poniendo tambien %
  21. echo tienes %resultado% dias
  22.  
  23. REM paramos el programa para que el usuario pueda ver el resultado hasta que pulse una tecla
  24.  
  25. REM volvemos al punto de partida que está en la etiqueta inicio
  26. goto inicio

Consideraciones a tener en cuenta:
Los valores almacenados en las variables se destruyen al cerrar el programa o al recalcular o reasignar los valores.
Los lenguajes de programación no suelen operar internamente con ñ ni acentos por lo que no los usaremos.

PD:
Código
  1. En la previsualizacion, porque la escribir años aparece asi: a& # 241;os y al escribir  a n i o s  aparece asi: años?
  2.  
  3. Bueno se descompone todo al guardar y luego al previsualizar se vuelve a descomponer asi que no se si se me entendera
  4.  
15  Programación / Scripting / Re: [Ayuda] Guardar Información en Batch en: 14 Mayo 2019, 11:26 am
Que recopilación tan buena! Gracias!
16  Programación / Scripting / Re: Batch para guardar un registro de cada ping realizado con la hora en una linea en: 14 Mayo 2019, 10:58 am
Hoy me falló de nuevo. Segun la versión de windows parece que es un problema el que no ponga un 0 delante de la hora. A ver si así:

Código
  1. @echo off
  2. echo El test de conexion a 192.168.1.10 cada 4 segundos ha comenzado
  3. echo ------------- NO CERRAR ESTA VENTANA -------------
  4.  
  5.  
  6. REM Creamos el archivo cada vez que se ejecuta el programa con la fecha y hora en el nombre y la primera linea
  7.  
  8. set hour=%time:~0,2%
  9. if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
  10. rem echo hour=%hour%
  11. set min=%time:~3,2%
  12. if "%min:~0,1%" == " " set min=0%min:~1,1%
  13. rem echo min=%min%
  14. set secs=%time:~6,2%
  15. if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
  16. rem echo secs=%secs%
  17.  
  18. set fecha=%Date:~-4%-%Date:~3,2%-%Date:~0,2%
  19. rem set hora=%Time:~0,2%-%Time:~3,2%-%Time:~6,2%
  20. set hora=%hour%-%min%-%secs%
  21.  
  22. REM Para concatenar y que no de problemas metemos variables y asignacion entre comillas
  23. set nombre=%fecha%_%hora%
  24. echo %nombre%
  25.  
  26. REM Añadimos el nombre del archivo al archivo que creamos tras >
  27. echo %nombre% > %nombre%.txt
  28.  
  29. REM Hacemos ping y lo anadimos poniendo la fecha delante linea a linea
  30. :LOOPSTART
  31.    (
  32.      FOR /L %%i in (1,1,1) do (
  33.        <nul (set /p tm=%date% %time:~,-3% )
  34.        rem PING -n 1 192.168.1.10 | FIND "TTL"
  35.        PING -n 1 google.com | FIND "TTL"
  36.        IF ERRORLEVEL 1 ECHO Error, Tiempo de espera agotado. No se ha podido conectar con la IP.
  37.      )
  38.    ) >>%nombre%.txt
  39.  
  40. REM tiempo que queremos que pase entre ping y ping en segundos
  41. timeout 4 > NUL
  42.  
  43. GOTO LOOPSTART
  44.  
  45.  
17  Programación / Scripting / Re: Batch para guardar un registro de cada ping realizado con la hora en una linea en: 29 Abril 2019, 09:52 am
Lo de las comillas tampoco ha funcionado. Ahora lleva dos semanas sin fallar despues de añadir los valores al nombre del archivo en dos pasos. Las comillas de momento las he dejado.

Código
  1. echo El test de conexion a 192.168.1.10 cada 4 segundos ha comenzado
  2. echo ------------- NO CERRAR ESTA VENTANA -------------
  3.  
  4.  
  5. REM Creamos el archivo cada vez que se ejecuta el programa con la fecha y hora en el nombre y la primera linea
  6.  
  7. set fecha=%Date:~-4%-%Date:~3,2%-%Date:~0,2%
  8. set hora=%Time:~0,2%-%Time:~3,2%-%Time:~6,2%
  9.  
  10. REM Para concatenar y que no de problemas metemos variables y asignacion entre comillas
  11. set nombre="%fecha%_%hora%"
  12. echo %nombre%
  13.  
  14. REM Anadimos el nombre del archivo al archivo que creamos tras >
  15. echo %nombre% > %nombre%.txt
  16.  
  17.  
  18. REM Hacemos ping y lo anadimos poniendo la fecha delante linea a linea
  19. :LOOPSTART
  20.    (
  21.      FOR /L %%i in (1,1,1) do (
  22.        <nul (set /p tm=%date% %time:~,-3% )
  23.        PING -n 1 192.168.1.10 | FIND "TTL"
  24.        IF ERRORLEVEL 1 ECHO Error, Tiempo de espera agotado. No se ha podido conectar con la IP.
  25.      )
  26.    ) >> %nombre%.txt
  27.  
  28. REM tiempo que queremos que pase entre ping y ping en segundos
  29. timeout 4 > NUL
  30.  
  31. GOTO LOOPSTART
  32.  
  33.  
18  Programación / Scripting / Re: Batch para guardar un registro de cada ping realizado con la hora en una linea en: 5 Abril 2019, 15:24 pm
Parece que se ha arrglado poniendo entre comillas asignación y variable.

Código
  1. set "nombre=%fecha%_%hora%"

Cuando vea que no falla pongo el script completo
19  Programación / Scripting / Re: Batch para guardar un registro de cada ping realizado con la hora en una linea en: 1 Abril 2019, 10:35 am
Al probarlo en un ordenador con windows 7 home premium, conectado por wifi, el resultado que tengo es este:

Código:
2019-04-01__10-21-53 

C:\asisrem\pinglog>(
(set /p tm=01/04/2019 10:21:53  ) 0<nul 
 PING -n 1 asisrem.com   | FIND "TTL" 
 IF ERRORLEVEL 1 ECHO Error, Tiempo de espera agotado. No se ha podido conectar con la IP.
)
01/04/2019 10:21:53 Respuesta desde 31.47.74.215: bytes=32 tiempo=14ms TTL=52

Hay algun comando del script que no funcione en esa version?
No consigo que imprima el resultado. Me imprime en el txt el propio codigo, mientras que otros ordenadores con windows pro funciona bien.
20  Programación / Scripting / Re: Batch para guardar un registro de cada ping realizado con la hora en una linea en: 22 Marzo 2019, 10:15 am
He tenido problemas al poner 6 variables asisgandolas a otra variable. Se cortaba la asignación y me decia que no se habia podido crear.

Os dejo como ha quedado finalmente con los comentarios del modo anterior para que se entienda mejor.

Código
  1. @echo off
  2.  
  3. REM Si queremos retrasar el incio del test habilitamos la linea del timeout
  4. REM timeout 240 > NUL
  5.  
  6. echo El test de conexion a 192.168.1.10 cada 4 segundos ha comenzado
  7.  
  8.  
  9. REM Creamos el archivo cada vez que se ejecuta el programa con la fecha y hora en el nombre y la primera linea
  10.  
  11. REM Al poner muchas variables seguidas asignadas a otra variable parece que daba fallo
  12. REM set Any=%Date:~-4%
  13. REM set Mes=%Date:~3,2%
  14. REM set Dia=%Date:~0,2%
  15.  
  16. REM set Hor=%Time:~0,2%
  17. REM set Min=%Time:~3,2%
  18. REM set Seg=%Time:~6,2%
  19. REM set nombre=%Any%-%Mes%-%Dia%__%Hor%-%Min%-%Seg%
  20.  
  21. REM Preparamos el nombre del archivo con solo 3 variables para que no de fallo
  22. set fecha=%Date:~-4%-%Date:~3,2%-%Date:~0,2%
  23. set Separador=__
  24. set hora=%Time:~0,2%-%Time:~3,2%-%Time:~6,2%
  25.  
  26. set nombre=%fecha%%Separador%%hora%
  27. echo %nombre% > %nombre%.txt
  28.  
  29. REM Hacemos ping y lo anadimos poniendo la fecha delante linea a linea
  30. :LOOPSTART
  31.  
  32.    (
  33.      FOR /L %%i in (1,1,1) do (
  34.        <nul (set /p tm=%date% %time:~,-3% )
  35.        PING -n 1 192.168.1.10 | FIND "TTL"
  36.        IF ERRORLEVEL 1 ECHO Error, Tiempo de espera agotado. No se ha podido conectar con la IP.
  37.      )
  38.    ) >> %nombre%.txt
  39.  
  40. REM tiempo que queremos que pase entre ping y ping en segundos
  41. timeout 4 > NUL
  42.  
  43. GOTO LOOPSTART
  44.  
Páginas: 1 [2] 3 4 5 6 7 8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines