函数参考


ConsoleRead

读取AU3进程中的 STDIN 流字符.

ConsoleRead ( [peek = false [, 二进制 = false ]])

参数

peek [可选参数] 如果为true(真),当从流里面读取字符后不移除流里面的字符.
二进制 [可选参数] 如果为true,从流里面读取数据使用二进制代替文本(默认为文本).

返回值

成功: 返回读取的字符.@extended 中包含了读取的字节数.
失败: 设置 @error 到非0,如果EOF 不能接受, STDIN 不能连接到进程或者其它错误.

注意/说明

ConsoleRead 内容从控制台的autoit脚本标准输入流中读取,这通常被控制台程序用来读取父进程的输入.
ConsoleRead 不会屏蔽,它会立即返回.为了得到所有数据,它必须在调用于一个loop循环中.
当使用 Peek 时,数据不会从缓冲器移除, 因此,它不能正常返回有效的数据.
默认情况下,返回的数据是文本格式,如果使用二进制选项,其数据将返回二进制格式.

相关

ConsoleWrite, ConsoleWriteError, Run

示例/演示


#cs
    1,编译此脚本为 "ConsoleRead.exe".
    2,以命令提示符的方式打开程序ConsoleRead.exe所在目录在.
    3,键入以下命令行:
    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(4096, "提示", "此脚本必须编译后才能正确显示.")
        Exit
    EndIf

    Local $sOutput
    While True
        $sOutput &= ConsoleRead()
        If @error Then ExitLoop
        Sleep(25)
    WEnd
    MsgBox(4096, "", "返回: " & @CRLF & @CRLF & $sOutput)
EndFunc   ;==>Example