Updated March 6, 2023
Introduction to PowerShell Multiline String
A string is nothing, but a set of character enclosed within “. A multiline string is a string whose value exceeds beyond one line. In that, the string should be enclosed within a here-string(@””@). Newline or carriage return value can also be used to create a multiline string. Multiline string can also be defined by using a line break within double-quotes. This article will explain in detail about multi-line string, its syntax uses along with appropriate examples.
Syntax:
Here-string is used for defining multiline string as follows. The first and last line shouldn’t contain anything.
@”
First-line
Second line
Third line
“@
When we don’t the variable or expression to be not evaluated then the string value can be enclosed in single quotes.
Example:
Write-Host "example of multiline string using here string"
$test=@"
First-line
second line
"@
Write-Host $test
Write-Host "example using literal string"
$test1=@'
first line
$(Get-Date)
second line
'@
Write-Host $test1
Output:
Even without here-string multi-line string can be defined as below
Input:
Write-Host "example of multiline without here string"
$text = {
Myself vignesh
am from chennai
am a freelancer
this is fourth line
}
write-Host $text.ToString()
Output:
Working of Multiline String using her String
PowerShell understands a string as multiline when it sees a @” succeeded by a newline. It ends when it ends with a “@. The main purpose of this is that it allows users to create strings with quotes, symbols, new lines, or other formatting texts. Whenever an error is thrown with reference to multiline string it is wise to first check the first line and there is no space between @ and “. Like normal string variable multiline string can also be literal or expanding. Single quotes denote literal and double quotes represent expanding. When a value or an expression is used inside a single-quoted multi-string it is printed as a literal string, whereas if a variable or expression is used inside a double-quoted multi-string it is evaluated and the actual value is printed rather than the literal value. Four possible combinations of multi-line strings can be created based on the needs of the user. In the below examples the various scenarios of multi-line string are discussed in detail.
Examples
Let us discuss examples of PowerShell Multiline String.
Example #1
Write-Host "Converting multine line string to a single line" -ForegroundColor Green
Write-Host "Get the contents of the file before converting" -ForegroundColor Green
Write-Host "Displaying the contents of the file" -ForegroundColor Green
$input = Get-Content -Path "C:\vignesh\multiline.txt"
foreach($line in $input)
{
Write-Host $line
}
Write-Host "Merging the contents of the file into a single line" -ForegroundColor Green
foreach ($line in $input)
{
$op = $op + $line
}
$op| Out-File C:\vignesh\multiline.txt -Force
Write-Host "After merging" -ForegroundColor Green
$final = Get-Content -Path "C:\vignesh\multiline.txt"
Write-Host $final
Output:
Example #2
Write-Host "Demo of splitting multiline string into object" -ForegroundColor Green
Write-Host " the multiline string is as follows" -ForegroundColor Green
$ip = @"
Student Name: Vignesh Student Id: 1 Age: 28
Student Name: Nandhini Student Id: 2 Age: 29
Student Name: Vyapini Student Id: 3 Age: 30
"@
Write-Host "Before splitting into object" -ForegroundColor Green
Write-Host $ip
Write-Host "After splitting the multiline string into object" -ForegroundColor Green
$ip -split "`n" |
Select-String 'Student Name: (\w+) Student Id: (\w+) Age: (.+)' |
ForEach-Object {
New-Object PSObject -Property ([Ordered] @{
"Student Name" = $_.Matches[0].Groups[1].Value
"Student Id"= $_.Matches[0].Groups[2].Value
"Age" = $_.Matches[0].Groups[3].Value
})
}
Output:
Example #3
Write-Host "Demo of different types of multi-string" -ForegroundColor Green
Write-Host "Simple example of multi-string enclosed in double quotes" -ForegroundColor Green
$ip = "
This is first line.
This is second line.
This is third line
"
Write-Host $ip
Write-Host "Simple example of multi-string in single quotes" -ForegroundColor Green
$ip = '
This is first line.
This is second line.
This is third line
'
Write-Host $ip
Write-Host "Example of here string in double quotes" -ForegroundColor Green
$ip= @"
This is first line.
This is second line.
This is third line
"@
Write-Host $ip
Write-Host "Example of here string in single quotes" -ForegroundColor Green
$ip= @'
This is first line.
This is second line.
This is third line
'@
Write-Host $ip
Write-Host "using value in double quotes" -ForegroundColor Green
$date=Get-Date
$ip=@"
Todays date is below
$date
"@
Write-Host $ip
Write-Host "using value in single quotes" -ForegroundColor Green
$date=Get-Date
$ip=@'
Todays date is below
$date
'@
Write-Host $ip
Write-Host "in single quotes the string literal is printed and not the value" -ForegroundColor Green
Write-Host "Using double quotes inside a double quotes" -ForegroundColor Green
$ip= @"
This is first line.
This is "second" line.
This is third line
"@
Write-Host $ip
Write-Host "Using single quotes inside a double quotes" -ForegroundColor Green
$ip= @"
This is first line.
This is 'second' line.
This is third line
"@
Write-Host $ip
Write-Host "Using single quotes inside a single quotes" -ForegroundColor Green
$ip= @'
This is first line.
This is 'second' line.
This is third line
'@
Write-Host $ip
Write-Host "Using double quotes inside a single quotes" -ForegroundColor Green
$ip= @'
This is first line.
This is "second" line.
This is third line
'@
Write-Host $ip
Output:
Conclusion
Thus, the article covered in detail multiline string in PowerShell. It also explained in detail how multiline string can be created using various methods such as here-string, single quotes, and double quotes methods and their differences. It also demonstrated various example programs that walked us through how to create multiline strings and work with them. To learn more in detail it is advisable to write sample scripts and practice them.
Recommended Articles
This is a guide to PowerShell Multiline String. Here we discuss the Introduction, syntax, Working of multiline string using her string, and examples. You may also have a look at the following articles to learn more –