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