Board logo

标题: [教程] [译]Take Command 事件监视命令(触发器) [打印本页]

作者: 老刘1号    时间: 2020-11-5 18:05     标题: [译]Take Command 事件监视命令(触发器)

本帖最后由 老刘1号 于 2023-2-18 20:23 编辑

TCC 提供了一组"触发器"命令,允许您监视计算机上的活动,并根据计算机中发生的更改触发并执行操作。本教程将教会您如何使用它们。

概述

TCC 有许多内部命令,允许您对系统进行实时监视。这些命令包括:


使用这些命令,您可以轻松地监视计算机中发生的大多数活动,并提供警报(如发送电子邮件、触发批处理,等等)。

在单个TCC窗口中,最多可以同时运行 100 个事件监视命令。下面的示例展示了设置触发器是多么的简单,并让您了解一些可以使用触发器完成的事情。

示例 1 -- 文件夹监视器

FolderMonitor允许您监视目录和文件的创建、删除、重命名和修改。假设您要监视在d:\results子目录中创建名为FinalResult.htm的文件的动作,然后将其复制到http://mycompany.com/results/FinalResult.htm

传统的方法是创建一个死循环等待该文件的脚本:
  1. do forever
  2.     iff exist "d:\results\FinalResult.htm" then
  3.         copy "d:\results\FinalResult.htm" "http://mycompany.com/results/FinalResult.htm"
  4.         del FinalResult.htm
  5.         rem Wait for the file again
  6.     endiff
  7.     Delay 10
  8. enddo
复制代码
这将使用单独的 TCC 会话,会浪费内存、间隔但持续的占用少量的 CPU 时间。

在 TCC 中,您可以在一行上搞定同样的事情:
  1. foldermonitor d:\results /i "FinalResult.htm" created forever (copy "d:\results\FinalResult.htm" "http://mycompany.com/results/FinalResult.htm" &
  2. del d:\results\FinalResult.htm)
复制代码
解释一下:


此命令会在当前 TCC 会话中创建单独的线程。

当查询到创建、删除、修改或重命名文件或文件夹时,FOLDERMONITOR还会创建四个环境变量。执行命令后,变量将失效。


如果要监视多个更改,应在单个FOLDERMONITOR命令中编写条件语句处理。否则,每个FOLDERMONITOR命令都会创建一个线程(会浪费内存和 CPU 时间)。

例如,以下命令会把d:\results中被创建或更改的文件复制到 Web 目录:
  1. foldermonitor d:\results created modified forever (copy "%_folderfile1" "http://mycompany.com/results/")
复制代码
示例 2 -- 进程监视器

ProcessMonitor可以监控程序的启动和退出。

例如,您希望每当特定应用程序退出时收到电子邮件提醒:
  1. processmonitor myapp* ended forever (sendmail bob@abc.com myapp Myapp just shut down!)
复制代码
解释一下:


这可用于保证生产环境的正常运行。

您还可以使用ProcessMonitor监视正在启动的进程。以下脚本将查找在计算机上运行的某病毒进程,将其终止,并发送一封电子邮件表明自身已被感染。
  1. processmonitor malproc started forever (taskend /F malproc & sendmail bob@abc.com malproc I have malproc on my computer!)
复制代码
解释一下:


TCC 的触发器命令是极其强大和灵活的,可以让您以前所未有的方式监视和管理您的计算机。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2