找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 243|回复: 13

[文件操作] 如何用 BAT VBS 静默运行 EXE,自动关闭 EXE 已知确认类弹窗

[复制链接]
发表于 前天 13:37 | 显示全部楼层 |阅读模式

       以 XP SP3 系统运行 CleanZ.exe(清理武器)为例,固定流程如下:
启动 CleanZ → 回车【扫描】开始 → 扫描完成后回车【确定】确认清理 → 回车【确定】关闭清理完成弹窗 → 确认主界面【退出】程序。

主界面和两次弹窗标题均为“清理武器”。
        CleanZ.exe(清理武器)程序网盘无密码下载链接:             https://wx.mail.qq.com/s?k=nLT5nFRidAgQruzWtb

现有 VBS如下:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "CleanZ.exe"
WScript.Sleep 200
WshShell.SendKeys "{ENTER}"  '开始扫描
While WshShell.AppActivate("清理武器")=False:WScript.Sleep 200:Wend
WshShell.SendKeys "{ENTER}"'确认清理
WScript.Sleep 200
WshShell.SendKeys "{ENTER}"  '确认清理完毕
WScript.Sleep 1500
WshShell.Run "taskkill /f /im CleanZ.exe",0   '关闭窗口
WScript.Sleep 200
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists("ComputerZ.set") Then fso.DeleteFile "ComputerZ.set", True
WScript.Quit

因扫描时长、清理时长不固定,无法按实际弹窗时机精准触发按键,容易造成扫描或清理不完全。

                                                          望网友赐教适配 Windows XP 的完善写法,为盼!
发表于 前天 18:31 | 显示全部楼层
本帖最后由 aloha20200628 于 2026-5-3 19:40 编辑

   只有一种简单情况可用vbs解决,即 CleanZ.exe 运行期间不是在主窗口中弹出子窗口用于交互,即始终只用一个窗口用于交互。
   vbs 监测一个主窗口应该没问题,若需监测捕获子窗口,则要改用现代更强大的脚本了。
 楼主| 发表于 前天 21:18 | 显示全部楼层
本帖最后由 wzehu 于 2026-5-3 21:25 编辑
aloha20200628 发表于 2026-5-3 18:31
只有一种简单情况可用vbs解决,即 CleanZ.exe 运行期间不是在主窗口中弹出子窗口用于交互,即始终只用一 ...


CleanZ.exe 每次弹窗肯定为前置活动状态,用模拟回车能完成确认项目。
如果 代码中WScript.Sleep 200  足够多,会完全清理干净。
这里的问题点是要用其他方式方法勾取弹窗并确认。

CleanZ图片网盘无密码下载链接:https://wx.mail.qq.com/s?k=t4T1qmJAQQ8zByLuAe
图中:“清理完毕弹窗”是贴上去的。当 时主窗口区为空白。

删除文件进回收站代码  只是为了方便 CleanZ测试。当回收站为空时则代码完全完成清理。。 ;P
发表于 昨天 06:36 来自手机 | 显示全部楼层
本帖最后由 窄口牛 于 2026-5-4 07:48 编辑

不如收集它所有清理项目,自己写个批处理清理。
逐项扫描,即可把所有清理位置全部找出来。
发表于 昨天 06:38 来自手机 | 显示全部楼层
wzehu 发表于 2026-5-3 21:18
CleanZ.exe 每次弹窗肯定为前置活动状态,用模拟回车能完成确认项目。
如果 代码中WScript.Sleep 200   ...

你把200改为更合适你实际的时间就可以了,或者它清理时间最长的那个项目,去检测一下,再续下一步操作。
发表于 昨天 18:32 | 显示全部楼层
wzehu 发表于 2026-5-3 21:18
CleanZ.exe 每次弹窗肯定为前置活动状态,用模拟回车能完成确认项目。
如果 代码中WScript.Sleep 200   ...

据说 CleanZ.exe 命令行参数可设置全程静默运行,不显示 GUI,不弹确认框,执行完自动退出。

用法如:
  1. CleanZ.exe /scan /clean
复制代码
 楼主| 发表于 昨天 19:50 | 显示全部楼层
aloha20200628 发表于 2026-5-4 18:32
据说 CleanZ.exe 命令行参数可设置全程静默运行,不显示 GUI,不弹确认框,执行完自动退出。

用法如:

CleanZ 命令行版 出处 CSDN
ClearZ磁盘垃圾清理工具:绿色轻量级安全文件清理软件
(3个子文件)
CleanZ.exe  1.22MB
CleanZ.exe-up.txt 321B
ComputerZ.set 1KB
与我用的 1.53  相同 1.22MB
且每次运行必在同目录生成 ComputerZ.set 1KB
CleanZ.exe  /?  自接容错出主窗口。
CSDN   文档 虚假骗积分。
 楼主| 发表于 昨天 19:59 | 显示全部楼层
本帖最后由 wzehu 于 2026-5-4 20:02 编辑
窄口牛 发表于 2026-5-4 06:38
你把200改为更合适你实际的时间就可以了,或者它清理时间最长的那个项目,去检测一下,再续下一步操作。 ...


关键是 扫描时长 和 清理时长 每次运行时看垃圾多少 都不固定值,不想用过长的时间沉余。。
如果用几个足够长的时间等待,是可以清理干尽,那不合实际。。
发表于 7 小时前 | 显示全部楼层
提供的信息太少,不好判断
你把这个exe文件传到网盘
 楼主| 发表于 5 小时前 | 显示全部楼层
czjt1234 发表于 2026-5-5 11:02
提供的信息太少,不好判断
你把这个exe文件传到网盘

            主界面和两次弹窗标题均为“清理武器”。
        CleanZ图片                      网盘无密码下载链接:    https://wx.mail.qq.com/s?k=t4T1qmJAQQ8zByLuAe

        CleanZ.exe(清理武器) 网盘无密码下载链接:     https://wx.mail.qq.com/s?k=nLT5nFRidAgQruzWtb
发表于 2 小时前 | 显示全部楼层
可以自己根据使用环境收集路径加入清理脚本执行,占用路径可以通过TreeSize扫描后定位路径位置。
https://www.cr173.com/soft/1565294.html

下面为自用清理脚本:
  1. @echo off & color 0a & Title 系统垃圾文件清理器 & setlocal enabledelayedexpansion
  2. cd /d "%~dp0"
  3. %1 %2
  4. ver|find "5.">nul&&goto :Admin
  5. mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof
  6. :Admin

  7. for /f "tokens=3 delims=, " %%a in ('echo ^|pnputil /enum-devices /disconnected ^|find "实例 ID:"') do echo 移除设备:%%a & pnputil /remove-device "%%a" >nul
  8. echo.
  9. echo,离线设备移除完毕
  10. echo.
  11. control RTSnMg64.cpl
  12. choice /t 2 /d y /n >nul
  13. tasklist|Find "RtkNGUI64.exe" >nul && (taskkill /f /t /IM RtkNGUI64.exe)
  14. tasklist|Find "RAVCpl64.exe" >nul && (taskkill /f /t /IM RAVCpl64.exe)

  15. echo,删除应用程序临时文件
  16. del /f /s /q %windir%\prefetch\*.*

  17. ::系统根目录清理
  18. if exist C:\360安全浏览器下载 (del /f /s /q C:\360安全浏览器下载\*.*)
  19. if exist C:\DVIDIA (del /f /s /q C:\DVIDIA\*.* & rd /s /q "C:\DVIDIA")
  20. if exist C:\AMD (del /f /s /q C:\AMD\*.* & rd /s /q "C:\AMD")
  21. if exist C:\DrvPath (del /f /s /q C:\DrvPath\*.* & rd /s /q "C:\DrvPath")
  22. if exist C:\Drivers (del /f /s /q C:\Drivers\*.* & rd /s /q "C:\Drivers")
  23. if exist "C:\ProgramData\Package Cache" (del /f /s /q "C:\ProgramData\Package Cache\*.*" & rd /s /q "C:\ProgramData\Package Cache")

  24. ::千牛缓存目录清理
  25. set dvs=c d e f
  26. for %%i in (!dvs!) do (
  27. if exist %%i:\AliWorkbenchData\ for %%j in (%%i) do (
  28. del /f /s /q %%j:\AliWorkbenchData\*.png
  29. del /f /s /q %%j:\AliWorkbenchData\*.jpg
  30. del /f /s /q %%j:\AliWorkbenchData\*.gif
  31. del /f /s /q %%j:\AliWorkbenchData\*.amr
  32. del /f /s /q %%j:\AliWorkbenchData\*.dat
  33. del /f /s /q %%j:\AliWorkbenchData\*.jfif
  34. del /f /s /q %%j:\AliWorkbenchData\*.json
  35. del /f /s /q %%j:\AliWorkbenchData\*.tmp
  36. del /f /s /q %%j:\AliWorkbenchData\*.tmp
  37. del /f /s /q %%j:\AliWorkbenchData\IMServiceDir\portrait_image\*.*
  38. for /f "delims=" %%a in ('dir /ad/b/s %%j:\AliWorkbenchData\ ^|sort /r') do rd "%%a" 2>nul
  39. )
  40. )
  41. del "%USERPROFILE%\AppData\Roaming\AliWorkbench\Update" /f /s /q
  42. del "%USERPROFILE%\AppData\Roaming\AliWorkbench\ReplaceImage" /f /s /q
  43. for /f "delims=" %%a in ('dir /ad/b/s %USERPROFILE%\AppData\Roaming\AliWorkbench\ ^|sort /r') do rd "%%a" 2>nul

  44. ::酷我音乐缓存清理
  45. del "C:\Users\All Users\kuwodata\kwmusic2013\Res\cache" /f /s /q
  46. rd "C:\Users\All Users\kuwodata\kwmusic2013\Res\cache" /s /q
  47. ::Adobe媒体缓存清理
  48. del "%USERPROFILE%\AppData\Roaming\Adobe\Common\Media Cache Files" /f /s /q
  49. rd "%USERPROFILE%\AppData\Roaming\Adobe\Common\Media Cache Files" /s /q

  50. ::腾讯QQ记录清理
  51. del "%USERPROFILE%\Documents\Tencent Files" /f /s /q
  52. rd "%USERPROFILE%\Documents\Tencent Files" /s /q
  53. del "%USERPROFILE%\AppData\Roaming\Tencent\Logs" /f /s /q
  54. rd "%USERPROFILE%\AppData\Roaming\Tencent\Logs" /s /q
  55. ::微信清理
  56. del "%USERPROFILE%\Documents\WeChat Files" /f /s /q
  57. rd "%USERPROFILE%\Documents\WeChat Files" /s /q
  58. ::钉钉清理
  59. del "%USERPROFILE%\AppData\Roaming\DingTalk" /f /s /q
  60. rd "%USERPROFILE%\AppData\Roaming\DingTalk" /s /q

  61. ::清除系统缓存目录
  62. del "%USERPROFILE%\AppData\Local\Temp" /f /s /q
  63. rd "%USERPROFILE%\AppData\Local\Temp" /s /q
  64. if not exist "%USERPROFILE%\AppData\Local\Temp" (md "%USERPROFILE%\AppData\Local\Temp")
  65. echo,删除internet临时文件
  66. del /f /s /q "%userprofile%\local settings\temporary internet files\*.*"
  67. echo 删除系统目录下备份文件
  68. del /f /s /q %windir%\*.bak

  69. echo 删除补丁备份目录
  70. RD %windir%\$hf_mig$ /Q /S
  71. echo 把补丁卸载文件夹的名字保存成2950800.txt
  72. dir %windir%\$NtUninstall* /a:d /b >%windir%\2950800.txt
  73. echo 从2950800.txt中读取文件夹列表并且删除文件夹
  74. for /f %%i in (%windir%\2950800.txt) do rd %windir%\%%i /s /q
  75. echo 删除2950800.txt
  76. del %windir%\2950800.txt /f /q

  77. rd /s /q %windir%\temp & md %windir%\temp

  78. echo 删除当前用户的COOKIE(IE)
  79. del /f /q %userprofile%\cookies\*.*
  80. echo 删除当前用户日常操作临时文件
  81. del /f /s /q "%userprofile%\local settings\temp\*.*"
  82. echo 删除访问记录(开始菜单中的文档里面的东西)
  83. del /f /s /q "%userprofile%\recent\*.*"
  84. del /f /s /q %systemdrive%\*.tmp
  85. del /f /s /q %systemdrive%\*._mp
  86. del /f /s /q %systemdrive%\*.log
  87. del /f /s /q %systemdrive%\*.gid
  88. del /f /s /q %systemdrive%\*.chk
  89. del /f /s /q %systemdrive%\*.old
  90. del /f /s /q %systemdrive%\recycled\*.*
  91. del /f /s /q %windir%\*.bak
  92. rd /s /q %windir%\temp & md %windir%\temp
  93. del /f /q %userprofile%\cookies\*.*
  94. del /f /q %userprofile%\recent\*.*
  95. del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
  96. del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
  97. del /f /s /q "%userprofile%\recent\*.*"

  98. ::清理系统盘根目录文件
  99. del /f /s /q %systemdrive%\*.tmp
  100. del /f /s /q %systemdrive%\*._mp
  101. del /f /s /q %systemdrive%\*.log
  102. del /f /s /q %systemdrive%\*.gid
  103. del /f /s /q %systemdrive%\*.chk
  104. del /f /s /q %systemdrive%\*.old
  105. del /f /s /q %systemdrive%\recycled\*.*

  106. ::删除windows update更新日志及相关补丁下载文件
  107. del "C:\Windows\SoftwareDistribution\Download" /f /s /q
  108. rd "C:\Windows\SoftwareDistribution\Download" /s /q

  109. ::清理软件运行记录文件
  110. del "C:\Windows\Prefetch" /f /s /q

  111. ::最近使用文档快捷方式目录
  112. del "%userprofile%\Recent" /f /s /q

  113. echo 删除回收站的无用文件
  114. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  115.   if exist %%a:\$recycle.bin (
  116.      pushd %%a:\$recycle.bin
  117.      for /f %%b in ('dir /b /a') do (rd /s /q %%b)
  118.   )
  119. )

  120. echo 删除打开文件记录快捷方式
  121. if exist "%userprofile%\recent\" (del /f /s /q "%userprofile%\recent\*.*")
  122. if exist "%userprofile%\AppData\Roaming\Microsoft\Windows\Recent\" (del /f /s /q "%userprofile%\AppData\Roaming\Microsoft\Windows\Recent\*.*")
  123. cls
  124. echo,
  125. echo 系统垃圾清理完成!!!!!!!!!!!
  126. echo,
  127. timeout -t 5 >nul
  128. exit
复制代码
发表于 1 小时前 | 显示全部楼层
以 XP SP3 系统运行 CleanZ.exe(清理武器)为

楼主需要的是适配任意系统任意软件,还是XP系统上任意软件?或者是任意系统,CleanZ软件?
请在1楼明确。
发表于 1 小时前 | 显示全部楼层
经测试,CleanZ.exe运行后会在%temp%生成一个随机文件名后缀名为###
但此文件内容不会改变,因此不能靠这个文件来判断

tasklist可以看到程序占用的内存3000不到,基本不会有太多变化
扫描完成后弹出一个新的窗口,所以占用的内存会到5000左右
因此可以 Sleep 200 循环 tasklist |find /i "CleanZ.exe" 监视内存来判断是否扫描完毕

清理完成后会生成一个ComputerZ.set文件,因此可以 Sleep 200 循环检测这个文件来判断是否清理完成
发表于 6 分钟前 | 显示全部楼层
czjt1234 发表于 2026-5-5 17:21
经测试,CleanZ.exe运行后会在%temp%生成一个随机文件名后缀名为###
但此文件内容不会改变,因此不能靠这个 ...

试过6楼所谓静默运行的说法吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-5-5 18:23

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表