likeyouli 发表于 2024-4-11 14:31:05

(分享)批处理--电脑倒计时多少秒后开始睡眠

本帖最后由 likeyouli 于 2024-4-12 08:56 编辑

@echo off
echo;
set /p fen=请输入数字多少分钟后睡眠,并按回车:
echo 请注意,电脑开始倒计时,%fen%分钟后将自动睡眠......
color 4e
set /a fen=fen*60
TIMEOUT /T %fen% /nobreak
set _Args=%*
if "%~1" NEQ "" (
set _Args=%_Args:"=%
)
fltmc 1>nul 2>nul || (
cd /d "%~dp0"
cmd /u /c echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~dp0"" && ""%~dpnx0"" ""%_Args%""", "", "runas", 1 > "%temp%\GetAdmin.vbs"
"%temp%\GetAdmin.vbs"
del /f /q "%temp%\GetAdmin.vbs" 1>nul 2>nul
exit
)
powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
powercfg -h on
pause>nul
下面一种方式,通过计划任务设置,需要提前准备好睡眠bat文件,倒是练习 if 的好方式:@echo off
set /p aa=请输入多长分钟以后开始睡眠或休眠(分钟):
for /f "tokens=1,2 delims=:" %%i in ('time/t') do set shi=%%i&set fen=%%j
set /a fen=fen+aa
setlocal enabledelayedexpansion
set /a shi=100000%shi%%%100000
echo !shi!1111111!fen!
if !fen! geq 60 (
set /a fen=fen-60
if !fen! geq 60 (
set /a fen=fen-60
if !fen! geq 60 (
set /a fen=fen-60
if !fen! geq 60 (
set /a fen=fen-60
if !fen! geq 60 (
set /a fen=fen-60
if !fen! geq 60 (
set /a fen=fen-60
) else set /a shi=shi+5&set shijian=!shi!:!fen!
) else set /a shi=shi+4&set shijian=!shi!:!fen!
) else set /a shi=shi+3&set shijian=!shi!:!fen!
) else set /a shi=shi+2&set shijian=!shi!:!fen!
) else set /a shi=shi+1&set shijian=!shi!:!fen!
) else set shijian=!shi!:!fen!
set date=%date:~0,10%
echo !shijian!zongshijian1
if !fen! leq 9 set fen=0!fen!
if !shi! geq 24 (
set /a shi=shi-24&set shi=0!shi!
set /a ri=!date:~8,2!+1
set date=!date:~0,4!-!date:~5,2!-!ri!
)
if !shi! leq 9 set shi=0!shi!
set shijian=!shi!:!fen!
ECHO !DATE!
SET DATE=!date:~0,4!/!date:~5,2!/!date:~8,2!
echo !date!
echo !shijian!zongshijian2
schtasks /delete /tn "进入睡眠" /f 1>nul 2>nul
(schtasks /create /tn "进入睡眠" /tr "D:\Personal\Desktop\睡眠或休眠.bat" /sc once /sd "!date!" /st !shijian! /RL HIGHEST)
endlocal
echo;
pause

likeyouli 发表于 2024-4-11 14:31:38

本帖最后由 likeyouli 于 2024-4-11 15:47 编辑

增加15倒计时提醒,弹出对话框,不点确认将不走秒@echo off
echo;
set /p fen=请输入数字多少分钟后睡眠,并按回车:
echo 请注意,电脑开始倒计时,%fen%分钟后将自动睡眠......
color 4e
set /a fen=fen*60-15
TIMEOUT /T %fen% /nobreak
mshta vbscript:msgbox("请注意:电脑还有15秒就要睡眠",64,"倒计时提醒")(window.close)
TIMEOUT /T 15 /nobreak
set _Args=%*
if "%~1" NEQ "" (
set _Args=%_Args:"=%
)
fltmc 1>nul 2>nul || (
cd /d "%~dp0"
cmd /u /c echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~dp0"" && ""%~dpnx0"" ""%_Args%""", "", "runas", 1 > "%temp%\GetAdmin.vbs"
"%temp%\GetAdmin.vbs"
del /f /q "%temp%\GetAdmin.vbs" 1>nul 2>nul
exit
)
powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
powercfg -h on

wang1126 发表于 2024-4-11 14:45:56

谢谢分享

dayeye 发表于 2024-4-11 15:29:25


谢谢分享

nathan6498 发表于 2024-4-11 15:41:48

谢谢分享

conlin888 发表于 2024-4-11 15:44:10

还有人玩电脑么

2012andyle113 发表于 2024-4-11 16:00:28

感谢分享

yc2428 发表于 2024-4-11 16:24:56

感谢分享

yuguotqing 发表于 2024-4-11 16:42:54

感谢分享

szwp 发表于 2024-4-11 17:02:37

提权不需生成临时文件,试试需要提权的环境

likeyouli 发表于 2024-4-11 17:13:16

szwp 发表于 2024-4-11 17:02
提权不需生成临时文件,试试需要提权的环境

提权的方式很多http://bbs.wuyou.net/forum.php?mod=viewthread&tid=428572&extra=page%3D1https://blog.csdn.net/tjcwt2011/article/details/103812135http://bbs.wuyou.net/forum.php?mod=viewthread&tid=429099&extra=page%3D1
可惜,我一个也看不懂,只知道拿过来用...

szwp 发表于 2024-4-11 17:40:46

去需提权的环境下测,延时会翻倍

2012飘水 发表于 2024-4-11 17:42:09

学习了,感谢分享

likeyouli 发表于 2024-4-11 17:44:42

szwp 发表于 2024-4-11 17:40
去需提权的环境下测,延时会翻倍

为什么时间会翻倍 ? 奇怪,,

szwp 发表于 2024-4-11 18:17:27

likeyouli 发表于 2024-4-11 17:44
为什么时间会翻倍 ? 奇怪,,

提权后会重新要求输入

yyz2191958 发表于 2024-4-11 18:19:04

谢谢分享

ZYYDS-FT798 发表于 2024-4-12 10:33:23

感谢老师分享,学习了!

softwarezheng 发表于 2024-4-12 11:16:59

感谢大家

2267981144 发表于 2024-4-12 19:23:34

感谢提供分享!

softwarezheng 发表于 4 天前

谢谢,感恩你我

zzq1392281 发表于 4 天前

感谢提供分享!
页: [1]
查看完整版本: (分享)批处理--电脑倒计时多少秒后开始睡眠