Vota por nosotros en el ranking web que participamos

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Octubre 07, 2008, 02:29:03
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, The Shadow(examenes))  |  Tema: [Duda] Batch para programar el apagado de W XP 0 Usuarios y 2 Visitantes están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: [Duda] Batch para programar el apagado de W XP  (Leído 232 veces)
/|\ GaMuZ /|\
Miembro
*****
Desconectado Desconectado

Mensajes: 63


Chuck norris alegre/triste/cansado/sorprendido ...


Ver Perfil
« en: Julio 02, 2008, 04:56:26 »

¿A quién no le ha pasado que se tiene que ir a algún sitio y, por lo tanto, tiene que apagar el ordenador, pero se está bajando un archivo de internet  o grabando un disco? En este caso, viene muy bien un programa para programar el apagado al que le puedas decir: Apagate en 12 min (por ejemplo) y a los 12 min se apague. He visto muchos de estos programas en internet, pero mejor tener uno que haya hecho yo mismo. Así que me puse manos a la obra, pero, aqui viene mi duda, este es el codigo que he creado:

Código:
@echo off
color fc
title Programa de apagado de Windows XP (PAW-XP)
echo.
echo Bienvenido al programa de apagado de Windows XP (PAW-XP).
echo.
echo Este programa le permitira programar en horas, minutos y segundos el apagado de su equipo.
echo.
echo Este es el formato en el que debe introducir el tiempo: hh-mm-ss
echo.
echo  Es decir, si desea que se apague en 9 horas 5 minutos y 3 segundos, debe introducir: 09-05-03
echo.
:Pregunta
set /p var1=Porfavor, introduzca el tiempo en el que desea que se apague su equipo:
if %var1%==00-00-00 (shutdown -s -t 00 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-01 (shutdown -s -t 01 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-02 (shutdown -s -t 02 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-03 (shutdown -s -t 03 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-04 (shutdown -s -t 04 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-05 (shutdown -s -t 05 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-06 (shutdown -s -t 06 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-07 (shutdown -s -t 07 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-08 (shutdown -s -t 08 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-09 (shutdown -s -t 09 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-10 (shutdown -s -t 10 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-11 (shutdown -s -t 11 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-12 (shutdown -s -t 12 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-13 (shutdown -s -t 13 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-14 (shutdown -s -t 14 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-15 (shutdown -s -t 15 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-16 (shutdown -s -t 16 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-17 (shutdown -s -t 17 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-18 (shutdown -s -t 18 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-19 (shutdown -s -t 19 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-20 (shutdown -s -t 20 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-21 (shutdown -s -t 21 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-22 (shutdown -s -t 22 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-23 (shutdown -s -t 23 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-24 (shutdown -s -t 24 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-25 (shutdown -s -t 25 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-26 (shutdown -s -t 26 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-27 (shutdown -s -t 27 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-28 (shutdown -s -t 28 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-29 (shutdown -s -t 29 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-30 (shutdown -s -t 30 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-31 (shutdown -s -t 31 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f)
if %var1%==00-00-32 (shutdown -s -t 32 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP (PAW-XP)" -f) else echo.&echo Perdon, el formato no es el correcto, el formato correcto es hh-mm-ss&echo.&echo Porfavor, pulse una tecla para volver a intenarlo&echo.&pause>nul&goto Pregunta


Claro, me funciona perfectamente, pero el tiempo max de apagado por ahora, son 32 seg, si quiero llegar hasta 1 hora, tengo que poner 3600 lineas (una hora tiene 3600 seg, no?) y si quiero que el tiempo máximo sea 2 horas, tengo que poner 7200 lineas. Como vereis, es una tarea ingente hacer tantas lineas. Aqui viene mi pregunta:

¿Conoceis algun código que me libre de hacer tantas lineas como segundos quiera? Os lo agradecería mucho.

Salu2!

PD - Recuerdo que batch no solo se puede utilizar para hacer códigos maliciosos.



En línea

Tu firma excedia las medidas permitidas de 400 x 200, modificala por favor
ciro_hxc
Miembro
*****
Desconectado Desconectado

Mensajes: 134

I kill myself from holding my breath

maximiliano_aravena@hotmail.com
Ver Perfil Email
« Respuesta #1 en: Julio 02, 2008, 07:43:59 »

para eso ocupa los comandos AT del msn .. parael programador de tareas es mas facil queescribir chorocientasmil veces codigos , saludos byte
En línea
Espectro Infernal
T0 d0: -> Mejorar 3 en raya
Moderadores
Colaborador
*****
Desconectado Desconectado

Mensajes: 854


ESPECTRO INFERNAL


Ver Perfil Email
« Respuesta #2 en: Julio 02, 2008, 10:29:57 »

Usa el comando FOR, en este caso te será útil Wink

Bytes, Espectro Infernal.
En línea





sami
Habitual
*****
Desconectado Desconectado

Mensajes: 396



Ver Perfil Email
« Respuesta #3 en: Julio 02, 2008, 06:19:57 »

Código:
set /p var1=Porfavor, introduzca el tiempo blablablablabla...
shutdown -s -t %var1% -c "El equipo blablabla..." -f)
« Última modificación: Julio 02, 2008, 06:20:53 por sami » En línea
:: SmartGenius™ ::
C.U.H. VIP Member
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2220


Yo estuve en el Campus Party.....lo Mejor..xD

smartgenius@el-hacker.org
Ver Perfil WWW
« Respuesta #4 en: Julio 02, 2008, 11:05:20 »

Código:
set /p var1=Porfavor, introduzca el tiempo blablablablabla...
shutdown -s -t %var1% -c "El equipo blablabla..." -f)


Obvio esta seria la solucion mas facil, solo que el formato en que se introduce la hora no concuerda con lo que recibe, asi que habria que trasnformar lo que el usuario pone ya sea en horas o minutos, todo esto a segundos...

otra cosita seria que se veria molesto ver un cartel que diga "el equipo se apagara en 65432 segundos", asi que pienso que seria mejor hacer unas operciones con las horas y usar le comando AT.

Tomamos la hora actual, le sumamos las horas o minutos que el user quiere y luego programamaos el apagado automatico a esa hora..., pienso que seria mas facil...

Saludos.
En línea



MOVISTAR INFORMA Q SU MOVIL ESTA POSEIDO X SATAN Y PUEDE Q EMPIECEN A APARECER C0ssAS RraRASx en lll oS SMS.j/;?((932"?>><:9?.

Primer WARGAME - Reto Crackme en Batch......Participa¡¡
CUH - Malware Removal Tool....Script AntiBichos xD

Vota ¡¡  Que Marca de Movil consideras que es la Mejor ?
/|\ GaMuZ /|\
Miembro
*****
Desconectado Desconectado

Mensajes: 63


Chuck norris alegre/triste/cansado/sorprendido ...


Ver Perfil
« Respuesta #5 en: Julio 03, 2008, 08:19:29 »

Ya se me ocurrió lo de hacer una variable:

Código:
set /p var1=Porfavor, introduzca los minutos en los que desea que se apague su equipo:
set /a res=%var1%*60
shutdown -s -t %res% -c "El equipo ha sido programado para apagarse por PAW-XP.

Asi introduciría minutos.

Pero lo que yo quiero es poder introducir el tiempo en hh-mm-ss. Investigue sobre el comando FOR, y he conseguido crear un bat que fabrique el bat del programa, pero no puedo hacer esto:

"if ==00-00-00 shutdown -s -t 21 -c "El equipo ha sido programado para apagarse por el Programa de apagado de Windows XP" -f"

¿Cómo podria hacer que cada 60seg, se sumase 1 min (subrayado)? Esque no se me ocurre nada, y quiero aprender haciendo este bat con el formato HH-MM-SS, es una especie de reto. ¿Alguna idea?
« Última modificación: Julio 03, 2008, 08:21:36 por Gamuz » En línea

Tu firma excedia las medidas permitidas de 400 x 200, modificala por favor
sami
Habitual
*****
Desconectado Desconectado

Mensajes: 396



Ver Perfil Email
« Respuesta #6 en: Julio 03, 2008, 04:46:35 »

aritmetica modular... hay un tutorial muy basico por ahi.
En línea
Furious Dami
-[Linux User]-
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2294


Prefiero morir de pie que vivir arrodillado...

FuriousDami@hotmail.com
Ver Perfil WWW Email
« Respuesta #7 en: Julio 03, 2008, 08:31:22 »

Dejenme ver... creo que usando Set/a + Schtasks funcionaria...

Vere si hago un code de eso, pero parece sencillo. Sera cuestion de convertir y sumar variables con el Set y con Schtasks programar la tarea... y quisas con el FOR optimizar el code  Wink

Salu2!
En línea


Una persona se hace realmente fuerte cuando protege a un ser querido...

:: SmartGenius™ ::
C.U.H. VIP Member
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2220


Yo estuve en el Campus Party.....lo Mejor..xD

smartgenius@el-hacker.org
Ver Perfil WWW
« Respuesta #8 en: Julio 03, 2008, 10:09:30 »

tal y como dijo sami, esto se haria ne base a al uso del mosulo para sacar lo de las horas, minutos y segundo y hacer la aplicacion.....

Algo asi como que toma la hora actual ..H
Luego toma cuanto es que le quiere agregar.....
Luego suma lo que se quiere a la hora actual y se guarda en algo que llamariamos hora final
entonces el programa estaria comprobando que hora es, y en el momento que la hora coincida se manda inmediatamente a apagar el equipo....

Se harian las respectivas operaciones para cambiar el formato de entrada de HH-MM-SS al que acepta la variable %time% para poder trabajar con el...

Saludos.
En línea



MOVISTAR INFORMA Q SU MOVIL ESTA POSEIDO X SATAN Y PUEDE Q EMPIECEN A APARECER C0ssAS RraRASx en lll oS SMS.j/;?((932"?>><:9?.

Primer WARGAME - Reto Crackme en Batch......Participa¡¡
CUH - Malware Removal Tool....Script AntiBichos xD

Vota ¡¡  Que Marca de Movil consideras que es la Mejor ?
The Shadow(examenes)
Dein Nulls
Moderadores
Colaborador
*****
Desconectado Desconectado

Mensajes: 905


Fucking mnemonic c0d1n6!

shadow@el-hacker.org
Ver Perfil WWW Email
« Respuesta #9 en: Julio 03, 2008, 10:14:22 »

Pasate por aka por lo de Aritmetica Modular

Y una funcion que te puede dar una idea es esta

 
Código:
@echo off
set param1=%1
set param2=%2
set param3=%3
set param4=%4
set hor=%time:~0,2%
set tim=%time:~3%
set tim=%tim:~0,2%
set /A tim=%tim% + %param3: =%
if /I %tim% geq 60 (set /a hor=%hor%+1
                    set /a tim=%tim%-60
                    if /I %tim% lss 10 (set tim=0%tim%))
set ecx=%hor%:%tim%
at %ecx: =% %param1: =% %param2: =% %param3: =% %param4: =%
exit

Su funcion es que cuando la llamas coge %1 y lo programa para que se ejecute, 1 minuto despues de que se llamo la funcion, con los parametros %2 %3 y %4

Saludos!
« Última modificación: Julio 03, 2008, 10:14:41 por The Shadow » En línea





Reglamento del Foro     Linux  Registered User #473016
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, The Shadow(examenes))  |  Tema: [Duda] Batch para programar el apagado de W XP « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.6 | SMF © 2006-2007, Simple Machines LLC