求助,怎么把控制台的信息输入到文本中。
在脚本中加入#AutoIt3Wrapper_run_debug_mode=Y后,想把控制台的信息都输入到一个文本中,就像dos里的把执行结果>1.txt 。根据dos回显例子实验了一下,但文本中输出的是空。求路过的大大指点{:face (207):}。
#AutoIt3Wrapper_run_debug_mode=Y
Local $i
Local $sum
For$i = 0 To 10 Step 1
$sum = $sum + $i
Next
#include <Constants.au3>
Opt("MustDeclareVars",1)
_test()
Func _test()
Local $foo,$line,$lines
$foo = Run("C:\Users\XJ\Desktop\实验控制台输出.exe", "", @SW_HIDE, $STDOUT_CHILD)
$lines = ""
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
$lines &= $line
Wend
ControlSend ( "计数.txt - 记事本" , "" , "Edit1" , @HOUR&@MIN)
ControlSend ( "计数.txt - 记事本" , "" , "Edit1" , $lines & @CRLF)
ControlSend ( "计数.txt - 记事本" , "" , "Edit1" , $lines & @CRLF)
EndFunc
#include <Constants.au3>
Dim $foo, $line, $lines
$foo = Run(@ComSpec & " /c netstat -naop tcp", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
$lines = ""
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
$lines &= $line
WEnd
ConsoleWrite($lines & @CRLF)
ControlSend ( "计数.txt - 记事本" , "" , "Edit1" , $lines & @CRLF)
ControlSend ( "计数.txt - 记事本" , "" , "Edit1" , @HOUR&@MIN)
运行dos命令就可以输出出来?是本质上不一样么?求路过的大大帮助 本帖最后由 kevinch 于 2013-12-3 19:24 编辑
_test()
Func _test()
Runwait("C:\Users\XJ\Desktop\实验控制台输出.exe>"""&@scriptdir&"\log.txt""", "", @SW_HIDE)
EndFunc不知道这样行不行 回复 3# kevinch
不行,没有输出的结果。
我想了个笨办法就是把每条语句后面都加一句输出。到是能模拟#auto3wrapper_run_debug_mode=y的输出。
真么没有可以同步控制台输出到文本的方法么,求路过的大大们帮忙{:face (117):} 回复kevinch
不行,没有输出的结果。
我想了个笨办法就是把每条语句后面都加一句输出。到是能模拟#aut ...
xu409278030 发表于 2013-12-4 11:25 http://www.autoitx.com/images/common/back.gif
能智能到输出你所想吗… 回复 5# afan
我想输出控制台的内容,是想看我的脚本运行到哪句话停了。如果我在每条语句后面都加一句ControlSend ( "log.txt - 记事本" , "" , "Edit1" , "xxxxxx"),不就能看到我运行到哪句停了了么。就是很麻烦,没有用debug那么方便了,但是避开控制台输出。
我翻了以前的帖子,有提问过这个问题的,但是也没有答案。{:1_601:} 直接在SCITE编辑器可以看了呀,为啥多个步骤要输出 来再看呢 在关键位置加点msgbox啊 consolewrite之类查看一下变量什么的 也不难找到问题点
当然楼主非要想像#AutoIt3Wrapper_run_debug_mode=Y的功能可能真的需要在每一行前面加一句输出 用正则替换一下 添加起来倒也不麻烦。 帮顶下,希望看到大神出现后的结果 截取回显FAQ里有:
Q2.5 运行DOS命令如何直接截取回显?
;注意:回显截取只支持Run而不是RunWait
#include <Constants.au3>
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
打印用 consolewrite 就很好了
页:
[1]