-3

我想从另一个提示中检测在 windows cmd 提示中运行的服务器输出并触发其他内容。可能吗?

4

3 回答 3

1

我认为您可以使用 AutoIT 之类的脚本/自动化工具来完成此操作。虽然它没有完全解决,但您可以查看以下链接以了解有关该问题的一些想法 - http://www.autoitscript.com/forum/topic/64872-read-from-command-prompt-window/

您对“服务器输出”的含义不是很清楚。这是您编写的应用程序吗?如果是这样,与其仅仅依靠解析屏幕文本,为什么不也登录到平面文件,而另一个进程可以更轻松地读取其中的内容。更好的办法是登录到数据库,在该数据库中文件锁定问题较少。

如果服务器应用程序不是您自己创建的,那么它会写入系统事件日志吗?与控制台窗口相比,这仍然更容易做出反应。

于 2013-05-16T17:44:01.563 回答
0

我很幸运,这可能有效:

theOriginalProcess | theWatcherProcess.bat

这是WatcherProcess.bat

@echo off
rem Wait for output from theOriginalProcess and read it
set /P outputLine=
rem Trigger something else
echo Output from theOriginalProcess detected!

如果这不起作用,那么WatcherProcess.bat 需要theOriginalProcess 以某种方式与之合作。您可以在这篇文章中阅读对此问题的进一步描述,以及在这篇文章中解决该问题的方法。

编辑:我开发了一个新版本的异步 Tee.bat 程序,可以轻松修改它以解决您的请求。在这个帖子中寻找它。

于 2013-05-16T18:39:51.510 回答
0

您要查找的内容称为 aNamed Pipe或 a"FIFO"我不知道如何在 Windows 中执行此操作。我在大学里只在 linux 上做过一次。这是链接,祝你好运

命名管道是一种命名的、单向或双工管道,用于管道服务器和一个或多个管道客户端之间的通信。

任何进程都可以充当服务器和客户端,从而使点对点通信成为可能。此处使用的术语管道服务器是指创建命名管道的进程,术语管道客户端是指连接到命名管道实例的进程。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365590(v=vs.85).aspx

于 2013-05-16T17:37:40.433 回答