windows handles查询及批处理动作判断

孤者浪人 提交于 2019-12-05 14:08:35

@echo off
setlocal enabledelayedexpansion
c:\windows\handle64.exe /s /p lsass.exe | findstr Total > %TMP%\handles_number.txt
for /f "tokens=3 delims= " %%i in (%TMP%\handles_number.txt) do (
 set xxxx=00%%i
 set yyyy=!xxxx:~-6!
  if !yyyy! GEQ 10240 (
    c:\windows\system32\shutdown /r /f /t 30
  ) else (
    echo ---------
    echo lsass.exe program handles number is %%i
  )
)


注释:
1. 关闭显示输出
2. 设定变量延迟扩展(https://www.jb51.net/article/29323.htm)
3. 使用handle(https://docs.microsoft.com/en-us/sysinternals/downloads/handle)查询lsass.exe程序当前的进程数量,并重定向到临时文件内
4. 使用for tokens 分割临时文件内容,并截取第3段内容
5. 对数字变量%i补0,以满足数字位数要求
6. 对数字变量,截取后5位
7. if else判断,如果数字变量大于等于10240,重启OS
 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!