Bird
Raised Fist0
PowerShellscripting~10 mins

Here-strings for multiline in PowerShell - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Here-strings for multiline
Start Here-string
↓
Write multiple lines
↓
End Here-string delimiter
↓
Use the multiline string
↓
Output or assign variable
A here-string starts with @" or @' and ends with "@ or '@ to hold multiple lines as one string.
Execution Sample
PowerShell
$text = @"
Line 1
Line 2
Line 3
"@
Write-Output $text
This code stores three lines in a variable using a here-string and then prints it.
Execution Table
StepActionValue of $textOutput
1Start here-string with @" delimiter""
2Add line: Line 1"Line 1\n"
3Add line: Line 2"Line 1\nLine 2\n"
4Add line: Line 3"Line 1\nLine 2\nLine 3\n"
5End here-string with "@ delimiter"Line 1\nLine 2\nLine 3\n"
6Write-Output $text"Line 1\nLine 2\nLine 3\n"Line 1 Line 2 Line 3
💡 Here-string ends at "@ delimiter; output shows multiline string.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4After Step 5Final
$textnull"Line 1\n""Line 1\nLine 2\n""Line 1\nLine 2\nLine 3\n""Line 1\nLine 2\nLine 3\n""Line 1\nLine 2\nLine 3\n"
Key Moments - 3 Insights
Why do we use @" and "@ instead of quotes for multiline strings?
Because normal quotes can't hold multiple lines easily; here-strings let you write many lines without special characters, as shown in execution_table steps 1 and 5.
Does the here-string keep the line breaks inside the string?
Yes, each line break is preserved inside the string, so output shows multiple lines (see execution_table step 6 output).
Can we use single quotes instead of double quotes for here-strings?
Yes, single-quoted here-strings (@' '@) treat content literally without variable expansion, but double-quoted (@" "@) allow variables inside. This example uses double quotes.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 4. What is the value of $text?
A"Line 1\nLine 2\n"
B"Line 1\n"
C"Line 1\nLine 2\nLine 3\n"
D""
💡 Hint
Check the 'Value of $text' column at step 4 in execution_table.
At which step does the here-string end?
AStep 3
BStep 5
CStep 6
DStep 2
💡 Hint
Look for the action 'End here-string with "@ delimiter' in execution_table.
If we replaced @" and "@ with single quotes @' and '@, what would change?
AVariable expansion inside the string would not happen
BThe string would not keep line breaks
CThe here-string would be invalid
DThe output would be on one line
💡 Hint
Recall key_moments about difference between single and double quoted here-strings.
Concept Snapshot
Here-strings hold multiline text in PowerShell.
Start with @" and end with "@ for double-quoted strings.
Preserves line breaks and supports variables.
Use @' and '@ for literal strings without variable expansion.
Assign to variables or output directly.
Full Transcript
This visual shows how PowerShell here-strings work. We start a here-string with @" and write multiple lines. Each line adds to the variable $text. We end the here-string with "@. The variable keeps all lines with line breaks. When we output $text, it prints all lines exactly as typed. Here-strings are useful for storing or printing multiline text easily. Single-quoted here-strings (@' '@) keep text literal without expanding variables. Double-quoted here-strings (@" "@) allow variables inside. This example uses double quotes. The execution table tracks each step of building the string and the final output.

Practice

(1/5)
1. What is the main purpose of using a here-string in PowerShell?
easy
A. To execute multiple commands in one line
B. To create multiline strings preserving formatting and line breaks
C. To define a function with multiple parameters
D. To comment out multiple lines of code

Solution

  1. Step 1: Understand what a here-string is

    A here-string is a way to write text that spans multiple lines without losing formatting or line breaks.
  2. Step 2: Compare options with the definition

    Only To create multiline strings preserving formatting and line breaks correctly describes the purpose of here-strings in PowerShell.
  3. Final Answer:

    To create multiline strings preserving formatting and line breaks -> Option B
  4. Quick Check:

    Here-strings = multiline text [OK]
Hint: Here-strings keep text exactly as typed across lines [OK]
Common Mistakes:
  • Confusing here-strings with command execution
  • Thinking here-strings are for comments
  • Assuming here-strings define functions
2. Which of the following is the correct syntax to start a double-quoted here-string in PowerShell?
easy
A. @' (at sign followed by single quote)
B. "@ (double quote followed by at sign)
C. @ (at sign followed by double quote)
D. @" (at sign followed by double quote)

Solution

  1. Step 1: Recall here-string syntax

    Double-quoted here-strings start with @" and end with "@.
  2. Step 2: Match options with syntax

    @" (at sign followed by double quote) correctly shows @" as the start of a double-quoted here-string.
  3. Final Answer:

    @" -> Option D
  4. Quick Check:

    Double-quoted here-string start = @" [OK]
Hint: Double-quoted here-strings start with @" [OK]
Common Mistakes:
  • Using single quote instead of double quote for double-quoted here-string
  • Reversing the order of @ and "
  • Confusing start and end delimiters
3. What will be the output of this PowerShell code?
$name = "Alice"
$text = @"
Hello, $name!
Welcome to PowerShell.
"@
Write-Output $text
medium
A. Hello, Alice! Welcome to PowerShell.
B. Hello, $name! Welcome to PowerShell.
C. Hello, Alice! Welcome to PowerShell.
D. Hello, $name! Welcome to PowerShell.

Solution

  1. Step 1: Identify the here-string type

    The here-string uses @" ... "@ which is double-quoted, so variables inside are expanded.
  2. Step 2: Evaluate variable expansion

    The variable $name is replaced by its value "Alice" inside the here-string.
  3. Final Answer:

    Hello, Alice! Welcome to PowerShell. -> Option A
  4. Quick Check:

    Double-quoted here-string expands variables [OK]
Hint: Double quotes expand variables inside here-strings [OK]
Common Mistakes:
  • Assuming variables are not expanded in double-quoted here-strings
  • Ignoring line breaks in output
  • Confusing single and double quotes for here-strings
4. Identify the error in this PowerShell script:
$text = @'
Line 1
Line 2
"@
Write-Output $text
medium
A. The here-string is not closed properly with '@
B. Using single quotes disables variable expansion
C. The ending delimiter "@ is incorrect for single-quoted here-string
D. Missing Write-Output command

Solution

  1. Step 1: Check the here-string delimiters

    The here-string starts with @' (single-quoted) but ends with "@ (double-quoted), which is incorrect.
  2. Step 2: Correct delimiter matching

    Single-quoted here-strings must end with '@, matching the start delimiter.
  3. Final Answer:

    The ending delimiter "@ is incorrect for single-quoted here-string -> Option C
  4. Quick Check:

    Start and end delimiters must match [OK]
Hint: Match start and end delimiters exactly for here-strings [OK]
Common Mistakes:
  • Mixing single and double quotes in delimiters
  • Forgetting to close the here-string
  • Assuming variable expansion error causes syntax error
5. You want to create a multiline string in PowerShell that includes the literal text "$path" without expanding it, but also includes a variable $user expanded. Which here-string syntax should you use?
hard
A. Use double-quoted here-string @" ... "@ and escape $path as `$path
B. Use single-quoted here-string @' ... '@ and write $user outside it
C. Use double-quoted here-string @" ... "@ and write $path as is
D. Use single-quoted here-string @' ... '@ and include $user inside it

Solution

  1. Step 1: Understand variable expansion in here-strings

    Double-quoted here-strings expand variables, single-quoted do not.
  2. Step 2: Requirement analysis

    You want $user expanded but $path literal. So use double-quoted here-string and escape $path as `$path to prevent expansion.
  3. Final Answer:

    Use double-quoted here-string @" ... "@ and escape $path as `$path -> Option A
  4. Quick Check:

    Escape variables to keep literal in double-quoted here-strings [OK]
Hint: Escape $ with backtick to keep literal in double-quoted here-strings [OK]
Common Mistakes:
  • Using single-quoted here-string disables all variable expansion
  • Not escaping $path causes unwanted expansion
  • Trying to expand variables inside single-quoted here-string
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard