Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - BALTA00

#1
Cita de: Eleкtro en 11 Junio 2012, 04:36 AM
Hola,

Aqui tienes mi versión de cosecha propia xD

PD: Funciona especificando minutos, Como se supone que querías... Y usa el formato que quieres (00:00:00).

Saludos.






Código (dos) [Seleccionar]
@echo off
Title Cuenta Regresiva

REM By Elektro H@cker
REM Visita: WWW.ElHacker.Net

Setlocal enabledelayedexpansion

:MENU
set /p TIMER=Escribe cuantos minutos durara la cuenta ^>^>
If not defined TIMER (Goto :Menu)
Echo "%TIMER%"| FINDSTR /I "[A-Z]" >NUL && Goto :Menu || (set /A total_sec=%TIMER%*60)
If %total_sec% LSS 3600 (Set /A Horas=0, Minutos=%TIMER%, Segundos=0& Goto :Countdown) ELSE (Set /A Timer+=60)
Set /A Horas=%Timer%-60 & Set /A Horas=!Horas!/60
Set /A MINUTOS=%Timer%-60 & For /L %%X in (1,1,!HORAS!) Do (Set /A MINUTOS-=60)
Set /A Segundos=0

:Countdown
CLS
For /L %%H in (%HORAS%,-1,0) Do (
For /L %%M in (!MINUTOS!,-1,0) Do (
For /L %%S in (!SEGUNDOS!,-1,0) Do (
Echo %%H| FINDSTR "^[0-9][0-9]$" >NUL && SET "HO=%%H" || (Set HO=0%%H)
Echo %%M| FINDSTR "^[0-9][0-9]$" >NUL && SET "MI=%%M" || (Set MI=0%%M)
Echo %%S| FINDSTR "^[0-9][0-9]$" >NUL && SET "SE=%%S" || (Set SE=0%%S)
Echo !HO!:!MI!:!SE!
Ping -n 2 localhost >NUL
CLS
)
If !SE!==00 (Set /A SEGUNDOS=59)
)
If !MI!==00 (Set /A MINUTOS=59)
)

:FIN
Echo Fin de la cuenta atras.
Pause


¿Qué se necesitaría agregar a ese código para que el usuario presionando una tecla interrumpa el conteo y pase a la siguiente línea?
#2
Muchas gracias Elektro, eso es justamente lo que preguntaba, no conocía su nombre por eso era difícil buscarlo, tu ejemplo sirvió perfecto para entenderlo y hacer lo que quería, nuevamente muchas gracias  ;-)
#3
Quisiera saber como hacer para eliminar bien sea los primeros XXX caracteres del principio o fin de una cadena, por ejemplo...

Código (Dos) [Seleccionar]
@Echo off
Set /P "VALOR1=INTRODUCE 12 CARACTERES:"

:VALOR_A
REM Eliminar 5 Digitos al Inicio
SET /A "VALOR_A"=%VALOR1% ELIMINAR 5 CARACTERES AL INICIO


:VALOR_B
REM Eliminar 5 Digitos al FINAL
SET /A "VALOR_B"=%VALOR1% ELIMINAR 5 CARACTERES AL FINAL

echo Resultado1 = %VALOR_A%
echo Resultado2 = %VALOR_B%


A ver si me explico, quisiera que el usuario al Introducir por ejemplo:
ABCDEFGHIJKL
Pueda eliminarse 5 caracteres al inicio y 5 al final, de modo que quede:
VALOR_A = FGHIJKL
VALOR_B = ABCDEFG

Lo que no consigo averiguar es como hacer para eliminar caracteres bien sea al inicio o al final, y posteo por acá a ver si tengo la suerte que alguien entienda lo que estoy buscando y me de una mano... ¿Alguno sabe algo? De antemano le doy las gracias a quienes respondan
#4
Scripting / Re: Ejecutar acción a X hora
25 Noviembre 2016, 07:51 AM
Cita de: engel lex en 25 Noviembre 2016, 07:39 AM
no estoy muy claro con windows... pero no es más facil usar el programador de tareas?

para lo que necesito no, porque no quiero que el script se ejecute siempre a una determinada hora, quiero que solo al momento de ejecutar el .bat quede programada la tarea
#5
Scripting / Ejecutar acción a X hora
25 Noviembre 2016, 07:36 AM
Saludos a todos, acudo hasta acá porque hasta ahora no he encontrado nada en el foro ni en la web relacionado a lo que necesito.

Resulta que hice un pequeño script y quiero ciertas funciones se ejecuten a determinada hora algo tipo así:

Código (bash) [Seleccionar]

@echo off
si son las 3:00 goto siguiente

:siguiente
TASKKILL /IM "proceso.exe" /F
exit


he intentado de todo, probé con la función:

Código (bash) [Seleccionar]
:chequeo
if %TIME% LSS 3:00:00.00 goto chequeo
echo Continuing at %TIME%


también probé:

Código (bash) [Seleccionar]
@echo off
:prueba
set t=%time:~0,5%
set t=%t::=%
if %t% lss 0300 (call :prueba) else (call :siguiente)
set/p=&exit
:siguiente
TASKKILL /IM "proceso.exe" /F
exit


y con ninguna ha dado resultados... ¿Alguna sugerencia?
#6
Buenas tardes, tengo un programita que a veces muestra en la cónsola "error23" y se quda ahí pegado, y hay que cerrarlo y abrirlo para que siga funcionando, hice lo siguiente:

Agregué un registro del programa para que corra y se vaya guardando todo en un archivo llamado "registro.txt"

Código (bash) [Seleccionar]
ZE.exe > registro.txt
echo quit >registro.txt
exit



y otro .bat que chequea el archivo "registro.txt" la palabra "error23" al detectarla procede a cerrar el proceso y volverlo a abrir:

Código (bash) [Seleccionar]
@echo off
echo iniciando programa..
:chequeo
if exist registro.txt del registro.txt
time /t
start /MIN start.bat
:chequeo2
timeout /T 10 /NOBREAK >nul
findstr /C:"error23" registro.txt && (
echo Detectado error23, reiniciando proceso para evitar que se congele
taskkill /F /IM ZE.exe
timeout /T 1 /NOBREAK >nul
echo reiniciando proceso..
goto chequeo
) || (
goto chequeo2
)


Ahora bien, todo funciona perfectamente, solo que ahora todo lo que antes me mostraba la cónsola ya no lo muestra, todo el texto se va al registro.txt, y me gustaría que se mostrara la cónsola y al mismo tiempo se fuera al registro, ¿Es esto posible?
#7
Buenas tardes a todos, paso por acá a hacer una consulta.

Quisiera hacer lo siguiente, un script en Linux que cada 10 minutos consulte si está on la página X haciendo ping, en caso de no recibir paquete de datos porque se cayó la página ejecutar accion1.sh y sigue haciendo ping, cuando detecte que regresó la conexión ejecutar accion2.sh

Hace algún tiempo por acá me dieron una mano para hacer algo similar pero en batch que consultaba si había Internet haciendo ping a google.com, y en caso de no recibir paquetes ejecutar una acción determinada, quisiera que me orientaran, pero esta vez para bash en Linux.

Código (DOS) [Seleccionar]
@echo off
:inicio
if exist testigo.txt del testigo.txt
set ERRORLEVEL =
ping -n 1 www.google.com > testigo.txt
rem La solicitud de ping no pudo encontrar el host
echo Comprobando conectividad ...
@find /C "La solicitud de ping no pudo encontrar el host" testigo.txt > null
rem find /C "recibidos = 0" testigo.txt

rem si errorlevel = 0  ha encontrado recibidos=0 lo cual indica que no hay conectivida
if %ERRORLEVEL%==0  goto reiniciar else goto accion2

:continua
color 17
echo Si hay conectividad    
rem delay de 1min
@ping -n 60 127.0.0.1 > null
goto inicio
   
:accion2
#8
Scripting / ¿Es posible ejecutar .bat vía remota?
30 Septiembre 2016, 00:58 AM
Me explico, administro unas 8 computadoras vía TeamViwer, pero a veces me es ladilloso, me gustaría ejecutar algunas tareas que yo por ejemplo pueda dejar en el disco c:

Por ejemplo
C:\Tarea1.bat
C:\Tarea2.bat
C:\Tarea3.bat

y que esos archivos estén en las 8 máquinas, y cuando yo quiera desde mi PC hago que la PC-1 ejecute Tarea1.bat, o que las 8 máquinas simultaneamente lo ejecuten.

Cabe señalar que quisiera hacerlo desde una PC que no pertenece a la red donde están las 8 computadoras.
#9
Cita de: warcry. en 27 Septiembre 2016, 20:59 PM
por ejemplo

Código (bash) [Seleccionar]
#!bin/bash

pregunta(){
echo -e "¿que tal?

"
}

respuesta(){
echo -e "genial

"
}

while true
do

pregunta

respuesta

done


Muchas gracias, era exactamente lo que quería saber...

Con este código lo que esté entre do y done se ejecutará de manera infinita?

si yo colocase:

do

pregunta

pregunta

respuesta

respuesta
done


de manera infinita me diría
¿que tal?
¿que tal?
genial
genial


¿Cierto?
#10
Estoy haciendo un pequeño script, y no sé como crear bucles infinitos en bash, a ver si me daban una ayudada

Sé que en batch sería algo tipo

:saludo
echo "Hola, ¿Cómo estás?"
goto respuesta

:respuesta
echo "Bien, ¿y tú?, ¿Me saludas de nuevo para crear un bucle infinito de saludos?"
goto saludo


¿Cómo lo hago en bash?