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

[其他] 探讨批处理WMIC检测是否可用

[复制链接]
发表于 2024-10-29 15:54:17 | 显示全部楼层 |阅读模式
WMIC应用范围广泛,但有很多系统不带或者默认没有安装,我们写的长篇代码如果涉及到以上程序,需要预先做个判断,我的脚本编写水平停留在09年,仅个人业余爱好,闲来无事逛逛论坛,贴出我以前写的代码抛砖引玉,以便共同交流学习。
  1. @echo off & setlocal EnableDelayedExpansion
  2. :begin
  3. ::判断wmic.exe是否存在,不存在跳转,存在则最小化运行wmic.exe,延迟2秒
  4. if not exist C:\WINDOWS\system32\wbem\wmic.exe (goto wmic_error) else (start/min wmic.exe)
  5. ping -n 2 127.1>nul
  6. ::进程检测wmic.exe是否存在,不存在则跳转repair_wmic段,存在则结束进程到next段代码
  7. tasklist /nh | findstr /i /c:"wmic.exe"
  8. if errorlevel 1 ( goto repair_wmic ) else ( taskkill /f /im wmic.exe & goto next )
  9. :repair_wmic
  10. if not exist C:\WINDOWS\system32\wbem\wmic.exe (goto wmic_error) else (copy C:\WINDOWS\system32\wbem\wmic.exe C:\WINDOWS\system32\wmic.exe>nul)
  11. if exist C:\WINDOWS\system32\wbem\framedyn.dll copy C:\WINDOWS\system32\wbem\framedyn.dll C:\WINDOWS\system32\framedyn.dll>nul & sc start wmiApSrv
  12. goto next
  13. :wmic_error
  14. echo MsgBox "亲爱的朋友,缺少关键文件wmic.exe!", 64, "缺少关键文件!"  >>%temp%\wmic.vbs
  15. start %temp%\wmic.vbs & exit
  16. :next
  17. echo 开始你想执行的代码吧
  18. pause
复制代码
  1. @echo off
  2. help|find /i "wmic" && echo;已安装wmic||echo;未安装wmic && set "path=%path%;C:\Windows\System32\Wbem" && WMIC
  3. pause
复制代码
第一段我写的代码,第二段是论坛上找的用于设置环境变量,有时候就是环境变量设置的问题,导致脚本无法执行,期待大家探讨下。
发表于 2024-10-29 18:17:35 | 显示全部楼层
啊 ,wmic不是都自带的吗?用不了的或许是被精简掉或者高版本系统默认禁用了?

系统盘不一定是C ,建议用变量SystemDrive或SystemRoot或其他代替
设置环境变量有问题就不要设置环境变量 ,单独用一个变量

wmic只是个wmi客户端 ,需要wmi服务 ,用不了其实也可以用其他的wmi客户端 ,例如wsh或ps
发表于 2024-10-29 20:04:16 | 显示全部楼层
回复 2# Five66


    新版及以后的Win11不带wmic了
发表于 2024-10-29 20:20:47 | 显示全部楼层
wmic cpu /? >nul
if %errorlevel% EQU 0 (
  echo 有 wmic
  ) else (
  echo 没有wmic
)
pause
发表于 2024-10-29 21:50:26 | 显示全部楼层
回复 3# hnfeng


    啊 ,不是说变成可选功能了? 应该还可以在设置里添加回来吧
发表于 2024-10-29 22:22:43 | 显示全部楼层
回复  hnfeng


    啊 ,不是说变成可选功能了? 应该还可以在设置里添加回来吧
Five66 发表于 2024-10-29 21:50



    是可以添加回来,但是运行批处理的电脑,不一定已经添加回来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 18:05 , Processed in 0.010150 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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