3

In PowerShell's documentation, I have come across the expression expandable string:

Argument mode is designed for parsing arguments and parameters for commands in a shell environment. All input is treated as an expandable string unless it uses one of the following syntaxes:

Unfortunately, I am unable to find a definition for expandable string and my question is: what is an expandable string in PowerShell?

mklement0
  • 382,024
  • 64
  • 607
  • 775
René Nyffenegger
  • 39,402
  • 33
  • 158
  • 293

1 Answers1

5

It is definitely unfortunate that, as of this writing, the official help topic on PowerShell string literals, about_Quoting_Rules doesn't introduce the term expandable string [update: the online version now does; to also see the update locally, you may have to run Update-Help].

An expandable string is:

  • A double-quoted string literal ("...")

    • By contrast, a single-quoted string ('...') is a verbatim (literal) string.
    • For an overview of all types of PowerShell string literals, which includes here-string variants (e.g., @"<newline>...<newline>"@), see the bottom section of this answer.
  • Double-quoted strings perform string interpolation (expansion).

    • This allows you to embed simple variable references as-is (e.g, "$var"), and expressions and whole statements via $() (e.g., "$($var.property)"). Escape verbatim $ (and ") chars. with `. Enclose variable names in {...} for disambiguation (e.g. "${var}").
    • For the complete rules, see this answer.
mklement0
  • 382,024
  • 64
  • 607
  • 775