how can I use the shutdown command to hibernate the computer in X hours? [duplicate]

Solution 1:

The -h switch is used to shut down the computer on Linux, not Windows. The correct command to shut down a Windows computer after 7 hours is:

shutdown -s -t 36000

Windows will show a dialog box with a countdown until the time the computer will shut down.

But, you want to hibernate, not shutdown, and unfortunately, the /h and the /t switch don't work together. As a workaround, you can use the at command to schedule shutdown /h to run at a certain time. For example, it is 3:00pm in my time zone at present, so 10 hours later would be 1:00am. To schedule it to hibernate then, I would run:

at 1:00 shutdown /h

It uses 24-hour time notation, so if you wanted it to hibernate at 1:00pm, you'd run:

at 13:00 shutdown /h

Please note, that while you don't need administrator permissions to run the shutdown command on default Windows installations, you do need them for the at command.

Solution 2:

It doesn't look like the -t option is supported with the -h option for shutdown.

Under Windows 7, you can duplicate what you're trying to do with a .bat script containing the following:

timeout /t 36000 /nobreak
shutdown -h

It will cause the PC to immediately hibernate once timeout is done counting down.

Solution 3:

PsShutdown from Sysinternals can hibernate the computer after a specified amount of time.

psshutdown -h -t 36000