找回密码
 加入
搜索
查看: 2777|回复: 6

有没有读取命令行窗口内容的函数?

[复制链接]
发表于 2008-6-27 12:19:04 | 显示全部楼层 |阅读模式
比如说,我在命令行窗口运行一个dir命令,用AU3可以读取DIR命令显示出来的内容

目的是用7za.exe解压压缩包,然后在AU3界面上显示出解压的文件,然后用文件数在确定进度条的进度

[ 本帖最后由 leewger 于 2008-7-9 10:45 编辑 ]
发表于 2008-6-27 13:45:26 | 显示全部楼层
我也想知道怎么弄,如果靠定向输出生成的过度文件,始终觉得啰嗦一些。看到JUJUMAO原来的驱动解压,文本都是在AU3窗口显示的。
dos有个管道命令“|”,不知AU3能否实现接收管道传来的数据。
发表于 2008-6-27 13:49:00 | 显示全部楼层
DOS命令的用RUN。。。
加上I/O标志即可。FAQ说明非常清楚了,为什么没人愿看一下呢?
发表于 2008-6-27 13:58:05 | 显示全部楼层
用i/o标志后,怎么在GUI上显示出内容呢?
发表于 2008-6-27 14:22:41 | 显示全部楼层
看到了,谢谢3恨斑斑!

Q2.5 运行DOS命令如何直接截取回显?
;注意:回显截取只支持Run而不是RunWait
#include 
Opt("MustDeclareVars",1)
_test()
Func _test()
Local $foo,$line,$lines
$foo = Run(@ComSpec & " /c sc query Alerter", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
$lines = ""
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
$lines &= $line
Wend
MsgBox(0,"test",$lines)
EndFunc


[ 本帖最后由 顽固不化 于 2008-6-27 14:24 编辑 ]
 楼主| 发表于 2008-6-27 15:08:39 | 显示全部楼层
我运行的你的代码
$lines里是空的

我把run中换成的了 dir c:\
发表于 2008-6-27 16:16:49 | 显示全部楼层
例子里#include <Constants.au3>

帮助里的例子也不错
#include <Constants.au3>

Local $foo = Run(@ComSpec & " /c dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDOUT read:", $line)
Wend

While 1
    $line = StderrRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDERR read:", $line)
Wend

MsgBox(0, "Debug", "Exiting...")
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-19 20:33 , Processed in 0.078065 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表