win10资源管理器经常无响应

本文介绍了一位博主如何通过编写bat脚本来解决Windows资源管理器频繁假死的问题,利用子进程内存差异区分桌面和文件管理,避免桌面黑屏。脚本通过内存筛选重启文件管理进程,提供便捷的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

资源管理器最近经常假死,打不开文件或者此电脑。


网上没找到能从根源解决这个问题的方案(可能就是电脑自己的毛病。。),只好在每次打不开此电脑或者打不开文件的时候,打开任务管理器手动重启explorer.exe进程。

既然都这样了就想着写个bat脚本再改进一下,能方便一些是一些。顺便学着写一下bat脚本hhh。先是想着直接kill掉explorer.exe再重启,但是这样它的两个子进程都会被kill掉,重启过程桌面会黑一下屏(explorer.exe是Windows程序管理器或者文件资源管理器,它用于管理Windows图形壳,包括桌面文件管理删除程序会导致Windows图形界面无法使用。from 百度百科),这我可忍不了。但看了看taskkill的参数好像并不支持kill特定的子进程,只有一个按pid来kill进程的参数能kill特定的子进程,但是pid每次是会随进程重启而改变的啊喂!!还不如我手动重启嘛。

那咋办,还看到了一个内存使用的列,嗯,有想法。

我们在任务管理器里看到这个管理桌面的子进程的内存使用情况好像比管理文件的子进程大数倍,那我们应该可以用这个属性来区别这两个子进程(应该。。

经过一番调试,感觉好像可以欸!(虽然脚本有些部分有点太过偶然,可能有更好的命令或者参数之类的,不过运行出来了就行hhhh

注意bat脚本里常量a有两个%%,而调试的时候只有一个%。。。

@echo off

REM explorer.exe有两个子进程,用于桌面和文件管理
REM 一般taskkill会终止进程和由它启用的子进程,
REM 这里实现只kill文件管理进程终止文件假死(都终止桌面会短暂黑屏
REM 由于重启服务pid会重新分配,不能和explorer.exe子进程“绑定”,所以考虑用子进程内存使用量来识别进程
REM 一般桌面管理进程内存使用量比文件管理进程大数倍(应该

REM 筛选出文件管理进程的内存使用情况,用b保存
for /f "skip=4 tokens=5 delims= " %%a in ('tasklist /fi "imagename eq explorer.exe"') do set b=%%a
REM 字符串转整形,向上取整(整形用于和memusage比较,向上取整是由于内存使用量可能会小范围波动,(此脚本依赖此bug运行
set /a b=%b%,0
set /a b=%b%
set /a b=%b%*1000+1000

REM kill掉内存使用量小于b的explorer.exe子进程
taskkill /f /fi "MEMUSAGE lt %b%" /fi "IMAGENAME eq explorer.exe"

REM 延时1s启动explorer.exe
ping -n 1 127.0.0.1>nul
explorer.exe
REM 退出cmd
exit

最后我们可以通过改注册表把这个脚本放到右键菜单里去hiahia~能方便一点是一点,当然,换个电脑或者重装更方便~lol

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值