Using Here-strings for Multiline Text in PowerShell
📖 Scenario: You are creating a script to store a multiline message that will be displayed later. This message includes multiple lines of text, like a short poem or a note.
🎯 Goal: Learn how to use PowerShell here-strings to store and display multiline text easily.
📋 What You'll Learn
Create a variable with a multiline string using a here-string.
Use the correct syntax for starting and ending a here-string.
Print the multiline string exactly as it is stored.
💡 Why This Matters
🌍 Real World
Here-strings are useful when you need to store or output blocks of text like emails, reports, or configuration files in scripts.
💼 Career
Many automation and scripting jobs require handling multiline text data cleanly, making here-strings an essential skill for PowerShell users.
Progress0 / 4 steps
1
Create a multiline string variable using a here-string
Create a variable called message and assign it a multiline string using a here-string. The string should contain exactly these three lines: Hello, This is a multiline message.
PowerShell
Hint
Use @" to start and "@ to end the here-string. Write the lines exactly as given between them.
2
Add a configuration variable for a greeting prefix
Create a variable called greeting and set it to the string "Note:".
PowerShell
Hint
Just assign the string "Note:" to the variable greeting.
3
Combine the greeting and message using a here-string
Create a new variable called fullMessage that combines the greeting and the message variables into one multiline string using a here-string. The first line should be the greeting, followed by the original message lines.
PowerShell
Hint
Start a new here-string for fullMessage. Inside it, place $greeting on the first line, then $message on the next lines.
4
Print the combined multiline message
Use Write-Output to print the fullMessage variable so the multiline text appears exactly as stored.
PowerShell
Hint
Use Write-Output $fullMessage to display the multiline string.
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
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.
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.
Final Answer:
To create multiline strings preserving formatting and line breaks -> Option B
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
Step 1: Recall here-string syntax
Double-quoted here-strings start with @" and end with "@.
Step 2: Match options with syntax
@" (at sign followed by double quote) correctly shows @" as the start of a double-quoted here-string.
Final Answer:
@" -> Option D
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?
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
Step 1: Understand variable expansion in here-strings
Double-quoted here-strings expand variables, single-quoted do not.
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.
Final Answer:
Use double-quoted here-string @" ... "@ and escape $path as `$path -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.