4

When I start a long-processing job just before going to sleep myself, I often run

shutdown -s -t 3600

so that the computer automatically shutdowns after 3600 seconds.

How to do the same to ask the computer to go to sleep after x seconds?

I tried

shutdown -h -t 60

but 1) it didn't even work and anyway 2) this would make computer go to hibernation, which I don't want (I prefer sleep mode).

Note: this answer doesn't solve the problem because it doesn't allow to specify a time before going to sleep.

Basj
  • 2,143

2 Answers2

8

A one-liner (based of DavidPostill's accepted answer):

timeout /T 3600 & rundll32.exe powrprof.dll,SetSuspendState 0,1,0

To be sure it works, you can try it like this:

timeout /t 10 & notepad

the Notepad should open after 10 seconds.

Important note: If you have git installed on your computer, its bin folder might be in the PATH, and doing timeout in the command line will run C:\Program Files\Git\usr\bin\timeout.exe instead of the default C:\Windows\System32\timeout.exe! In this case you have to include the full path of timeout, in order to use the Windows timeout tool.

Basj
  • 2,143
2

How do I make Windows 7 go to sleep after x seconds?

Use the following batch file, and run as an Adminstrator

@echo off
rem disable hibernate
powercfg -hibernate off
rem wait x seconds, eg 1 hour
timeout 3600 /nobreak
rem sleep
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState 0,1,0

Further Reading

DavidPostill
  • 162,382