PowerShell: String
String is a sequence of characters. There are 3 syntax to create string.
'singe quoted string'
"double quoted string"
- Here-String
Single Quoted String
Character sequence between APOSTROPHE is literal string. (Can contain multiple lines.)
$x = 'some thing' echo $x
To include a single quote inside single quoted string, use two single quotes.
$x = 'don''t' $x -eq "don't"
# backslash is literal, GRAVE ACCENT also literal $x = 'a\n`nb'
Double Quoted String (Expandable String)
Character sequence between "double quote"
is expandable string
(aka interpreted, interpolated).
Variable or expression inside are replaced by their value
$n = 4 $x = "I have $n cats" $x -eq 'I have 4 cats'
Expression is also expanded.
$x = "I have $(2+1) cats" $x -eq 'I have 3 cats'
To include a newline, use literal newline or use `n
.
$x = "A`nB" $y = "A B" $x -eq $y
Variable Inside Double Quote
It should have the form
${name}
.
The curly brackets can be omitted if there is a space after the name, or some other non-letter character.
$x = 4 "${x}cats" -eq "4cats"
To make the dollar sign string sequence literal, add a GRAVE ACCENT ` before it.
$x = 4 "`${x}cats" -eq '${x}cats'
Expression Inside Double Quote
It should have the form
$(expr)
.
"$(3+4)cats" -eq '7cats'
Escape Character
To include a double quote inside a double quoted string, precede it with GRAVE ACCENT `
$x = "He said: `"yes`""
Or precede it with double quote.
$x = "He said: ""yes"""
[see Escape Characters]