我想从另一个提示中检测在Windows cmd提示符下运行的服务器输出并触发其他内容。有可能吗?
答案 0 :(得分:1)
我认为你可能能够使用脚本/自动化工具(如AutoIT)来实现这一目标。虽然没有完全解决,但您可以看到以下链接,以了解有关该问题的一些想法 - http://www.autoitscript.com/forum/topic/64872-read-from-command-prompt-window/
您对于服务器输出"的含义并不十分清楚。这是你写的应用程序吗?如果是这样,不是仅仅依赖于解析屏幕文本,为什么不登录到平面文件,而另一个进程可以更容易地读取其中找到的内容。更好的方法是登录到一个数据库,在这个数据库中你可以减少文件锁定的问题。
如果服务器应用程序不是您自己创建的,那么它是否写入系统事件日志?与控制台窗口相比,这仍然更容易做出反应。
答案 1 :(得分:0)
您要找的是Named Pipe
或"FIFO"
我不知道如何在Windows中执行此操作。我只是在linux大学里做过一次。继承人的链接,祝你好运
命名管道是用于通信的命名单向或双向管道 管道服务器和一个或多个管道客户端之间。
任何进程都可以充当服务器和客户端,从而实现点对点 沟通可能。这里使用的术语管道服务器是指a 创建命名管道的过程,以及管道客户端引用的术语 连接到命名管道实例的进程。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365590(v=vs.85).aspx
答案 2 :(得分:0)
我很幸运,这可能有用:
theOriginalProcess | theWatcherProcess.bat
这是theWatcherProcess.bat
@echo off
rem Wait for output from theOriginalProcess and read it
set /P outputLine=
rem Trigger something else
echo Output from theOriginalProcess detected!
如果这不起作用,那么theWatcherProcess.bat要求原始进程以某种方式与它合作。您可以在this post阅读有关此问题的进一步说明,以及this one解决此问题的方法。
编辑:我开发了一个新版本的异步Tee.bat程序,可以轻松修改以解决您的请求。在this post查找。