Wednesday, February 10, 2010

How To: Timed Shutdown

I've decided I need to reduce my electrical bill, but I often like to have my computer on while I'm trying to sleep. After some researching I figured out how to write a batch script to shutdown my computer after some time. Here is how:

When Windows shuts down it actually executes a program to do all the "dirty" work. Turns out this program is called "shutdown" and is accessible through the run box and in command prompt. If you open a command prompt window and type "shutdown" the following help text is displayed:
Usage: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
[/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]

No args Display help. This is the same as typing /?.
/? Display help. This is the same as not typing any options.
/i Display the graphical user interface (GUI).
This must be the first option.
/l Log off. This cannot be used with /m or /d options.
/s Shutdown the computer.
/r Shutdown and restart the computer.
/g Shutdown and restart the computer. After the system is
rebooted, restart any registered applications.
/a Abort a system shutdown.
This can only be used during the time-out period.
/p Turn off the local computer with no time-out or warning.
Can be used with /d and /f options.
/h Hibernate the local computer.
Can be used with the /f option.
/e Document the reason for an unexpected shutdown of a computer.
/m \\computer Specify the target computer.
/t xxx Set the time-out period before shutdown to xxx seconds.
The valid range is 0-315360000 (10 years), with a default of 30.
If the timeout period is greater than 0, the /f parameter is
implied.
/c "comment" Comment on the reason for the restart or shutdown.
Maximum of 512 characters allowed.
/f Force running applications to close without forewarning users.
The /f parameter is implied when a value greater than 0 is
specified for the /t parameter.
/d [p|u:]xx:yy Provide the reason for the restart or shutdown.
p indicates that the restart or shutdown is planned.
u indicates that the reason is user defined.
If neither p nor u is specified the restart or shutdown is
unplanned.
xx is the major reason number (positive integer less than 256).
yy is the minor reason number (positive integer less than 65536).
The important thing to take from this is that we can use /t and an alloted time in seconds to schedule a shutdown. Using this switch, I wrote a simple little batch script (called shutdown.bat) that now resides on my desktop. Here is what it looks like:

@echo off
echo Scheduling shutdown in one hour.
shutdown.exe /s /t 3600

All I need to do is double click the icon when I want to turn off my computer in the next hour. You could modify this line to suit your needs with a longer time in seconds, or maybe /h for hibernate instead of /s for shutdown.

Feel free to email me with questions.

No comments:

Post a Comment