Problema con batch en AT shutdown

Iniciado por d3xf4ult, 24 Febrero 2012, 19:12 PM

0 Miembros y 2 Visitantes están viendo este tema.

d3xf4ult

Hola a todos. Estaba yo... desbarrando con esto... y nosé por que no funciona?
Que está mal?

@echo off
echo Hora en la que se apagará el PC:
set /p hora=
at %hora% shutdown /a /c /y
echo exit


Como podría poner un contandor después de a ver introducido la hora, y realizar una cuenta atrás de cuanto tiempo de apago quedará.

-Gracias-  ;)

WaAYa HaCK

Para que se apague el ordenador, es con shutdown -s. La opción -a sirve para cancelar el apagado del sistema...
La cacatúa yoyó es nueva en el zoo!

d3xf4ult

#2
Ok. lo corregí:
at %hora% shutdown /s /c /y

Pero sigue sin funcionar...

Haciendo un pause al final en vez de exit.
Me dice que el servicio AT no está en ejecución. Miré en services.msc y no encuentro dicho servicio.
Como habilito este servicio y como lo hago por comandos? dentro del script anterior?

$Edu$

Fijate esto:

Código (dos) [Seleccionar]

@echo off

set /p "hora=Ingrese hora del apagado del modo HH:MM: "

at %hora% shutdown -s

echo.
echo La PC se apagara a las %hora% , presione una tecla para continuar..
pause>nul

:bucle
cls

set hor=%time:~0,2%
set min=%time:~3,2%

set Uhor=%hora:~0,2%
set Umin=%hora:~3,2%


set /a tHor=%Uhor% - %hor%
set /a tMin=%Umin% - %min%

set resto=%tHor%:%tMin%

echo.

echo   CUENTA ATRAS DEL APAGADO: %resto%
echo.&&echo.
echo  Presione una tecla para actualizar..
pause>nul



goto :bucle


Eso si, arreglale vos para que en %resto% no muestre por ejemplo: 1:9 sino que muestre: 01:09

PD: Fijate que en Windows 7 no anda el comando "at" y tambien aprende que cada comando lo tenes que mirar en el cmd poniendo: comando/? o help comando. Te digo esto porque pones cualquier cosa de argumento en el comando :/

Pablo Videla

Considerar los siguientes parametros del shutdown

shutdown -s (apagado)
shutdown -s -t 0 (cantidad de segundos, donde 0 es los segundos xD)
shutdown -s -t 0 -f (apagado forzado a los 0 segundos)
shutdown -r (reiniciado, tambien se puede mezclar con los otros parametros t y f)

Ahora si estas haciendo un batch para que se apague a cierta hora, la idea es que lo hagas forzado para que se apague si o si

entonces utilizas shutdown -s  -f

Ve tu si colocas el tiempo o no, tambien puedes dejar un mensaje

Shutdown -s -t 30 -c "Apagando el sistema" -f

Referencia: el cmd xD


Uso: shutdown [-l | -s | -r | -a] [-f] [-m \\equipo] [-t xx] [-c "comentario"] [-d up:xx:yy]

        Sin argumentos  Mostrar este mensaje (igual a -?)
      -i                Mostrar interfaz GUI, debe ser la primera opción
        -l                      Cerrar sesión (no se puede usar con la opción -m)
        -s                      Apagar el equipo
        -r                      Apagar y reiniciar el equipo
        -a                      Anular el apagado de equipo
        -m \\equipo             Equipo que se apagará/reiniciará/anulara
        -t xx                   Establecer el tiempo de espera de apagado en xx
                               segundos
        -c "comentario"         Comentario de apagado (máximo, 127 caracteres)
        -f                      Fuerza el cierre de aplicaciones sin advertir
        -d [u][p]:xx:yy         Código de motivo de apagado
                                u es el código de usuario
                                p es el código de apagado planeado
                                xx es el código primario del motivo de apagado
                              (entero positivo menor que 256)
                                yy es el código secundario del motivo de apagado
                              (entero positivo menor que 65536)






d3xf4ult

Gracias @$EDU$.
Cita de: $Edu$ en 24 Febrero 2012, 20:26 PM
Te digo esto porque pones cualquier cosa de argumento en el comando :/

Ya, si ya se. Simplemente que me hice un lio con los modificadores de otro comando.

-c este pensaba que era para forzar el cierre de aplicaciones abiertas, cuando realmente me fijo ahora que es para añadir comentario e -y (no existe para este comando) pensabe que era para confirmar de manera automática desatendida el cierre de aplicaciones abiertas en ese momento.

Mejoraré lo de la visualización de la hora. de manera que se muestre el 0.

Por último hay una parte que no la acabo de ver...
set hor=%time:~0,2%
set min=%time:~3,2%

set Uhor=%hora:~0,2%
set Umin=%hora:~3,2%

Por que este símbolo?: (alt126) ~ Yo entiendo que este símbolo (que no se el nombre? si alguien sabe que me diga, lo agradecería) se suele utilizar para cuando no quieres acceder a la ruta en cuestión de un directorio completa. De modo que esto la completa, no es así?

Y por que los valores en minutos y horas de: 0,2% y 3,2% respectivamente.??

$Edu$

Busca un tutorial completo de batch y aprenderas eso, pero por arriba simplemente te explico que lo que hice fue tomar algunos caracteres solamente de la variable %time% y luego de la variable %hora% esque al hacer las cuentas no puedo hacerlas con los " : " entre medio, entonces lo que hice fue tomar a la variable %time% los caracteres desde el principio "0" hasta el segundo "2". Y lo mismo con los minutos, ejecuta este codigo asi entiendes:

Código (dos) [Seleccionar]

@echo off
set var=ABCDEFGHOLAIJKLMNOPQRSTUVWXYZ
echo %var:~7,4%
pause>nul



Tendria que mostrarte "HOLA", porque empieza a contar desde el 7 y cuenta 4 caracteres solamente.
Si no muestra Hola es porque conte mal xD

Pero hay mas cosas que puedes hacer, remplazo de caracteres, contar de atras para adelante, etc , etc asi que busca un buen tutorial de batch donde lo den a eso