[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
错误事件是什么类型(系统、应用程序、安全、…)?什么级别(信息、警告、错误、…)?事件ID是多少?
开始→运行:eventvwr.msc 查看日志

TOP

vbs监视出现指定的报错就执行某一段批处理
  1. strComputer = "."
  2. Set ws = CreateObject("WScript.Shell")
  3. set wmi = GetObject("winmgmts:\\"&strComputer&"\root\cimv2")
  4. set Sink = WScript.CreateObject("WbemScripting.SWbemSink", "Sink_")
  5. wmi.ExecNotificationQueryAsync Sink, _
  6.     "SELECT * FROM __InstanceCreationEvent WITHIN 1 where " _
  7.     & "TargetInstance ISA 'Win32_NTLogEvent' and " _
  8.     & "TargetInstance.Logfile = 'System' and " _
  9.     & "TargetInstance.EventType = '1' "
  10. do : WScript.Sleep 1000 : loop
  11. sub Sink_OnObjectReady(objWbemObject, objAsyncContext)
  12.     s = objWbemObject.TargetInstance.GetObjectText_()
  13.     'WScript.Echo s
  14.     ws.Environment("process")("tab") = vbTab
  15.     ws.Environment("process")("_log") = s
  16.     ws.Run "a.bat" 'a.bat中可以访问 _log 环境变量
  17. end sub
复制代码

TOP

要显示变量 _log 的值,因其含有回车符,故不可用echo %_log%,需用 set _log 或 echo !_log!。

TOP

我也不懂操作系统是怎么实现的。
我只知道运行这个脚本后,如果系统日志中产生了类型为系统、级别为错误的事件,该脚本就会自动运行一个批处理a.bat。
这不正符合你的愿望吗:“我想写一个批处理随时监视出现指定的报错就执行某一段批处理”?

另外,貌似你回帖很费劲?要回复几楼直接点对应楼层左下角的“回复”就行了,如果想引用该楼的内容则点“引用”。

TOP

返回列表