[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 检查用户闲置时间的批处理有什么问题?什么也不提示就是执行不正确。

  1. @echo off
  2. :loop
  3. REM 检查当前用户的闲置时间
  4. for /f "tokens=2 delims=:" %%a in ('query user ^| findstr /i "idle time"') do set idle=%%a
  5. REM 将闲置时间字符串转换为数字
  6. for /f "tokens=1-2 delims=:" %%a in ("%idle%") do set /a idle=%%a*60+%%b
  7. REM 检查闲置时间是否大于 60 秒(1 分钟)
  8. if !idle! GTR 60 (
  9.   REM 显示 5 秒警告的倒计时
  10.   for /l %%i in (5, -1, 1) do (
  11.     echo 在 %%i 秒内锁定计算机...
  12.     timeout /t 1 > NUL
  13.   )
  14.   REM 锁定计算机
  15.   rundll32.exe user32.dll,LockWorkStation
  16. )
  17. REM 等待 1 秒后再次检查闲置时间
  18. timeout /T 1 > NUL
  19. goto loop
复制代码

本帖最后由 songdianxue 于 2023-1-7 10:13 编辑

回复 2# Batcher


    谢谢大神的回复,但是还是不行。
  1. :loop
  2. REM 检查当前用户的闲置时间
  3. for /f "tokens=2 delims=:" %%a in ('query user ^| findstr /i "idle time"') do set idle=%%a
  4. REM 将闲置时间字符串转换为数字
  5. for /f "tokens=1-2 delims=:" %%a in ("%idle%") do set /a idle=%%a*60+%%b
  6. REM 检查闲置时间是否大于 60 秒(1 分钟)
  7. if %idle% GTR 60 (
  8.   REM 显示 5 秒警告的倒计时
  9.   for /l %%i in (5, -1, 1) do (
  10.     echo 在 %%i 秒内锁定计算机...
  11.     timeout /t 1
  12.   )
  13.   REM 锁定计算机
  14.   rundll32.exe user32.dll,LockWorkStation
  15. )
  16. REM 等待 1 秒后再次检查闲置时间
  17. timeout /T 1
  18. goto loop
复制代码
我又把代码改成这样,又出现了不应出现60的错误,请大神再看一下。[img]![]()[/img]

TOP

回复 3# bat1152


    改完后又出现,不应出现60的错误。

TOP

返回列表