ConsoleRead
读 AutoIt 脚本进程中的 STDIN.
ConsoleRead ( [peek = False [, binary = False]] )
参数
peek
|
[可选] 如果为 true, 则函数不删除从流读取的字符.
|
binary
|
[可选] 如果为 true, 则读流的二进制数据而不是文本(默认读文本).
|
返回值
成功:
|
返回读取的数据. @extended 包含读取的字节数.
|
失败:
|
设置 @error 为非 0 值, 表示已到达 EOF(文件尾), STDIN 不能连接到进程或者其它错误.
|
备注
ConsoleRead 读取控制台 autoit 脚本进程的标准输入流, 通常用控制台程序读取父进程的输入.
ConsoleRead 不会阻塞,它会立即返回. 为了得到所有数据, 它必须在循环中调用.
取数不会删除缓冲区中的数据, 相反它能正常返回当前数据.
默认返回文本格式数据. 如果使用二进制选项, 则返回二进制格式数据.
相关
ConsoleWrite, ConsoleWriteError, Run
函数示例
#include <MsgBoxConstants.au3>
#cs
Compile this script to "ConsoleRead.exe".
Open a command prompt to the directory where ConsoleRead.exe resides.
Type the following on the command line:
echo Hello! | ConsoleRead.exe
When invoked in a console window, the above command echos the text "Hello!"
but instead of displaying it, the | tells the console to pipe it to the STDIN stream
of the ConsoleRead.exe process.
#ce
Example()
Func Example()
If Not @Compiled Then
MsgBox($MB_SYSTEMMODAL, "", "This script must be compiled in order to run the example.")
Exit
EndIf
Local $sOutput
While True
$sOutput &= ConsoleRead()
If @error Then ExitLoop
Sleep(25)
WEnd
MsgBox($MB_SYSTEMMODAL, "", "Received: " & @CRLF & @CRLF & $sOutput)
EndFunc ;==>Example
----------------------------------------
|