about_Parsing

TOPIC
    about_Parsing

SHORT DESCRIPTION
    Describes how Windows PowerShell parses commands.

LONG DESCRIPTION
    When you enter a command at the command prompt, Windows PowerShell
    breaks the command text into a series of segments called tokens
    and then determines how to interpret each one. For example, Windows
    PowerShell breaks the following command into two tokens, “Write-Host
    and “book”, and interprets each token separately:

        Write-Host book

    When processing a command, the Windows PowerShell parser operates
    in expression mode or in argument mode:

        – In expression mode, character string values must be contained in
         quotation marks. Numbers not enclosed in quotation marks are treated
         as numerical values (rather than as a series of characters).

        – In argument mode, each value is treated as an expandable string
         unless it begins with one of the following special characters: dollar
         sign ($), at sign (@), single quotation mark (‘), double quotation
         mark (“), or an opening parenthesis (().

    If preceded by one of these characters, the value is treated as a value
    expression.

    The following table provides several examples of commands processed in
    expression mode and argument mode and the results produced by those
    commands.

    Example            Mode         Result
    —————— ———- —————-
    2+2                Expression 4 (integer)
    Write-Output 2+2 Argument     “2+2” (string)
    Write-Output (2+2) Expression 4 (integer)
    $a = 2+2         Expression $a = 4 (integer)
    Write-Output $a    Expression 4 (integer)
    Write-Output $a/H Argument     “4/H” (string)

    Every token can be interpreted as some kind of object type, such
    as Boolean or string. Windows PowerShell attempts to determine the
    object type from the expression. The object type depends on the
    type of parameter a command expects and on whether Windows PowerShell
    knows how to convert the argument to the correct type. The
    following table shows several examples of the types assigned to
    values returned by the expressions.

    Example            Mode         Result
    —————— ———- —————
    Write-Output !1    argument     “!1” (string)
    Write-Output (!1) expression False (Boolean)
    Write-Output (2) expression 2 (integer)

SEE ALSO
    about_Command_Syntax