sv0002 发表于 2013-5-7 17:21:24

[已解决]字符串连接操作的问题

本帖最后由 sv0002 于 2013-5-8 14:52 编辑

帮助文件里有这样一个例子,我只是把执行的命令改了一下,并且想把命令结果保存下来,可是保存的命令结果只是第一次连接操作的结果,而不是全部,我要怎么办?
#include <Constants.au3>

Local $foo = RunWait(@ComSpec & " /c ping-n 20 www.163.com", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line,$re

While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
$re &= $line
    MsgBox(0, "STDOUT 读取:", $line)
Sleep(1000)
WEnd
MsgBox(0,"result",$line)
While 1
    $line = StderrRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDERR 读取:", $line)
WEnd
MsgBox(0,"result",$line)

MsgBox(0, "调试", "准备退出...")

haijie1223 发表于 2013-5-7 19:27:18

#include <Constants.au3>
Local $line, $re
Local $foo = Run(@ComSpec & " /c ping-n 20 www.163.com", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

While 1
        $line = StdoutRead($foo)
        If @error Then ExitLoop
        $re &= $line
WEnd
MsgBox(0, "", $re)

xms77 发表于 2013-5-7 19:53:51

本帖最后由 xms77 于 2013-5-7 19:54 编辑

回复 1# sv0002
Win7下好像用STDoutread函数读取命令行回显不是很好啊?
#include <Constants.au3>
Local $foo = Run(@ComSpec & " /c ping-n 20 www.163.com", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
Local $line,$re
While 1
        Sleep(22000)
    $line = StdoutRead($foo)
    If @error Then ExitLoop
        $re &= $line   
WEnd
MsgBox(0, "STDOUT 读取:", $re)

xms77 发表于 2013-5-7 20:11:19

回复 2# haijie1223
发哥,这个代码在win7下不能抓住全部的命令行回显

user3000 发表于 2013-5-7 21:24:58

回复 1#8# xms77
这样可以.#include <Constants.au3>
Local $run = Run(@ComSpec & " /c ping-n 2 www.163.com", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
ProcessWaitClose($run)
MsgBox(0,"",StdoutRead($run))

haijie1223 发表于 2013-5-7 21:31:44

回复 8# xms77


    没有win7,xp测试可以~

sv0002 发表于 2013-5-8 12:15:30

回复 5# user3000

谢谢,你的方法是等待命令执行完毕,可以获取完整的命令结果。我在意的另一个地方是$re &= $line这行代码,经过测试,XP、Win2003下没问题,但Win7下不能获得期待的效果,
可能是autoit处理字符串时,存储机制和Win7的兼容配合方面有缺陷,
如果有字符串的复制函数,也许可以利用它获得期望的结果。

sv0002 发表于 2013-5-8 12:18:45

回复 3# xms77

谢谢,XP下测试可行,Win7要等命令执行完毕时再读缓冲区才是正确的结果。

sv0002 发表于 2013-5-8 12:23:37

回复 5# user3000
回复 3# xms77
回复 2# haijie1223
感谢user3000、发哥和xms77的热心帮助。
页: [1]
查看完整版本: [已解决]字符串连接操作的问题