[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复2楼:

vbs调用WMI获取文件制造商
  1. Dim FilePath,WMIPathMode
  2. FilePath=InputBox("请输入文件全路径(例如以下路径格式)","文件路径","C:\windows\system32\user32.dll")
  3. If FilePath <> "" Then
  4. WMIPathMode=Replace(FilePath,"\","\\")
  5. Set OBJWMI = GetObject("winmgmts:\\.\root\CIMV2")
  6. Set colManufacturer = OBJWMI.ExecQuery("SELECT * FROM CIM_DataFile Where Name='" & WMIPathMode & "'")
  7.     For Each OBJManufacturer In colManufacturer
  8.         If Trim(OBJManufacturer.Manufacturer) <> "" Then
  9.       MsgBox "文件全路径是: "&LCase(Trim(OBJManufacturer.Name))&chr(10)&"文件制造商是: "&Trim(OBJManufacturer.Manufacturer)
  10.         Else
  11.           MsgBox "文件全路径是: "&LCase(Trim(OBJManufacturer.Name))&chr(10)&"文件制造商是:空"
  12.         End If
  13.     Next
  14. End If
复制代码
直接用wmic:
  1. wmic datafile where name="c:\\windows\\system32\\notepad.exe" get Manufacturer
复制代码
你想获取服务的制造商~~可以参考参考这个

关于服务的:
批处理结合VBS获取服务基本状态:

本来可以直接用VBS搞定的,最近搞VBS比较频繁,就用用批处理吧..结合一下练练手..
  1. @echo off
  2. cls
  3. echo set OBJWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>ServiceStatus.vbs
  4. echo set colInstalledServices = OBJWMIService.ExecQuery("Select * From Win32_Service")>>ServiceStatus.vbs
  5. echo For Each OBJService in colInstalledServices>>ServiceStatus.vbs
  6. echo Wscript.Echo OBJService.State ^& vbTab ^& OBJService.DisplayName>>ServiceStatus.vbs
  7. echo Next>>ServiceStatus.vbs
  8. cscript //nologo ServiceStatus.vbs >ServiceStatus.txt
  9. for /f "skip=1 tokens=2 delims=:" %%i in ('find /v /c "" ServiceStatus.txt') do set total=%%i
  10. for /f "skip=1 tokens=2 delims=:" %%a in ('find /i /c "running" ServiceStatus.txt') do set rcount=%%a
  11. for /f "skip=1 tokens=2 delims=:" %%x in ('find /i /c "Stopped" ServiceStatus.txt') do set scount=%%x
  12. ping -n 2 127.1 >nul 2>nul
  13. echo 计算机系统里安装的服务总共有%total% 个。
  14. echo.
  15. ping -n 3 127.1 >nul 2>nul
  16. echo 正在运行的服务有%rcount% 个。列表如下:
  17. echo.
  18. ping -n 3 127.1 >nul 2>nul
  19. for /f "skip=2 delims=" %%k in ('find /i "running" ServiceStatus.txt') do echo %%k
  20. ping -n 3 127.1 >nul 2>nul
  21. echo.
  22. echo 已经停止的服务有%scount% 个。列表如下:
  23. echo.
  24. ping -n 3 127.1 >nul 2>nul
  25. for /f "skip=2 delims=" %%p in ('find /i "stopped" ServiceStatus.txt') do echo %%p
  26. echo.
  27. ping -n 3 127.1 >nul 2>nul
  28. echo set OBJWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>stoppable.vbs
  29. echo set colServices = objWMIService.ExecQuery("Select * From Win32_Service Where AcceptStop = True")>>stoppable.vbs
  30. echo For Each OBJService in colServices>>stoppable.vbs
  31. echo Wscript.Echo OBJService.State ^& vbTab ^& OBJService.DisplayName>>stoppable.vbs
  32. echo Next>>stoppable.vbs
  33. cscript //nologo stoppable.vbs >stoppable.txt
  34. for /f "skip=1 tokens=2 delims=:" %%e in ('find /i /c "running" stoppable.txt') do set srcount=%%e
  35. echo 可以停止但是正在运行的服务有%srcount% 个。列表如下:
  36. echo.
  37. ping -n 3 127.1 >nul 2>nul
  38. for /f "skip=2 delims=" %%g in ('find /i "running" stoppable.txt') do echo %%g
  39. ping -n 3 127.1 >nul 2>nul
  40. echo.
  41. for /f "skip=1 tokens=2 delims=:" %%j in ('find /i /c "stopped" stoppable.txt') do set sscount=%%j
  42. if not "%sscount%"==" 0" (
  43. echo 可以停止而且已经停止的服务有%sscount% 个。列表如下:
  44. echo.
  45. ping -n 3 127.1 >nul 2>nul
  46. for /f "skip=2 delims=" %%c in ('find /i "stopped" stoppable.txt') do echo %%c
  47. ) else echo 可以停止而且已经停止的服务有 0 个。
  48. del ServiceStatus.vbs stoppable.vbs ServiceStatus.txt stoppable.txt >nul
  49. pause
复制代码
关于服务的分类,可以参考这帖子:能分出system auto 等```
http://bbs.bathome.net/viewthread.php?tid=338
Software is like sex: it's better when it's free..!

TOP

返回列表