批处理文件重定向

时间:2009-04-15 12:34:22

标签: windows batch-file dos

我有一个调用我的IDE的批处理文件,所以我只想知道我们是否可以将IDE(整个内容)中的内容提取到一些文本文件中。

我的批处理文件写在下面

D:\WindRiver\wrenv.exe -p vxworks653-2.2.3 run
PAUSE

是否需要将更多代码添加到现有批处理文件中?

4 个答案:

答案 0 :(得分:1)

我不确定“提取IDE中的内容”你怎么想?但一般来说,使用自动化工具解决了这类问题。这些工具可以从窗口名称,按钮标题,文本内容中获取Windows环境中的任何内容......您可能需要从第3方应用程序获取的所有内容(甚至是gui元素的图片)

我建议您查看用于Windows自动化的AutoHotKey,~200KB脚本语言。

一般来说,你不能批量地这样做。

在AutoHotKey中获取窗口的内容可以简单如下:

 WinGetText, text, "name of the window"
 FileAppend, %text%, c:\out.txt

它可能会变得有点复杂,但是你可能不需要的东西不会涉及10行以上的AHK脚本。

这是最好的方法,因为它不依赖于给定程序的功能,所以一旦你学习了AHK,就可以统一的方式从系统中获取任何信息。

请记住,某些应用程序使用的是非标准的Windows组件,并且它们可能无法自动化(但这种情况很少见)。

在社区论坛上有很多有用的函数和库,基本上可以用来获取信息 - stdin / out重定向到你的文件,COM Accesibilty模块(系统方式来自动化windows中的东西),甚至一些ocr包装器扫描图像上的信息。

答案 1 :(得分:0)

我问a similar question哪些可能有用。如果您的IDE将信息输出到stdout / stderr等,那么这种方法可能会起作用。

我已经有一些(有限的)成功,他们已经开始尝试拦截他们输出的数据。

具体来说,你想要捕获的是什么?其中一个窗口的输出?错误消息如果无法启动?

[编辑] 我仍然不确定您要捕获的内容,但听起来您可以从批处理文件中启动Python脚本。 The script launches your IDE并捕获stdout和stderr,这将为您提供正常的输出任何错误。

答案 2 :(得分:0)

对不起,迟到的回复。这是实际的IDE(D:\ WindRiver \ wrenv.exe -p vxworks653-2.2.3)当我把这个放在命令提示符中我的IDE被调用.Plz回到我身边更进一步澄清

由于 斯蒂芬

答案 3 :(得分:0)

<强>&GT;&GT;&GT;嗨,我试过AutoHotKey ....

不,它不正确。

只有安装了我没有的WindRiver才能生成正确的代码。 好的,让我解释一下。

首先假设IDE的标题以“WindRiver”字开头。 WindRiver必须将文本保存在一些标准的窗口控件中,而这些控件在它的控制范围内。有问题的控件的类型指示了如何从中获取文本的方式。例如,如果它是ListView或ListBox,则必须使用

ControlGet, outputVar, List,, SysListView321, WindRiver

上面的代码意味着“从应用程序中获取第一个SysListView32控件的文本(因此结尾为1),标题以'WindRiver'开头,并将其放入ouputVar变量”

如果它保留在编辑框中,您只需执行以下操作:

ControlGetText, OutputVar, Edit1, WindRiver

这意味着“通过标题WindRiver获取应用程序内部第一个Edit控件的内容”

要获取相关控件的类型和数量,只需打开Window Spy(右键单击AHK托盘图标),然后将鼠标悬停在控件上以查看其详细信息。

整个脚本如下所示:

Run, d:\WIndriver ....
WinWaitActive, WindRiver
ControlGetText, OutputVar, Edit1, WindRiver
MsgBox %OtputVar%  

如果窗口的标题不断变化,则必须使用窗口类的instad标题来标识窗口。例如,您可以将记事本定位为

ControlGetText, o, Edit1, Untitled 

COntrolGetText, o, Edit1, ahk_class Notepad

第一种方法使用窗口标题,第二种方法使用应用程序的Window API类,当标题可以更改时更好。

总而言之,为了让AHK有点流利,请查看启动示例。我可以告诉你,经过几天的练习,你会发现自己根据自己的需要调整任何应用程序。

要了解AHK是多么强大以及可以在其中完成哪些令人惊奇的事情,请查看Dock模块。

你无法在批处理和使用标准重定向这样做,所以你最好习惯AHK或类似的自动语言(AutoIt,Phantom,WinRunner ....)。顺便说一句,在AHK社区的Ask For Help论坛上,这种问题通常会在几个小时内得到解答。

相关问题