# Function Reference

# ConsoleRead

Read from the STDIN stream of the AutoIt script process.

ConsoleRead ( [peek = False [, binary = False]] )

## Parameters

peek | [optional] If True the function does not remove the read characters from the stream.
binary | [optional] If True the function reads the data as binary instead of text (default is text).

## Return Value

Success: | the data read. @extended contains the number of bytes read.
Failure: | sets the @error flag to non-zero if EOF is reached, STDIN is not connected for the process or other error.

## Remarks

ConsoleRead() reads from the console standard input stream of the AutoIt script process, which is normally used by console applications to read input from a parent process.
ConsoleRead() does not block, it will return immediately. In order to get all data, it must be called in a loop.
Peeking on the stream does not remove the data from the buffer, however, it does return the available data as normal.
By default, data is returned in text format. By using the binary option, the data will be returned in binary format.

## Related

ConsoleWrite, ConsoleWriteError, Run

## Example

    #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