サーチ…
構文
"(ダブルクォート)文字列"
'リテラル文字列'
@ "
Here-string
"@@ '
リテラルのhere-string
'@
備考
文字列はテキストを表すオブジェクトです。
基本的な文字列の作成
文字列
文字列は二重引用符で囲むことで作成されます。二重引用符で囲まれた文字列は変数と特殊文字を評価できます。
$myString = "Some basic text"
$mySecondString = "String with a $variable"
文字列の中で二重引用符を使用するには、エスケープ文字backtick( `
)を使用してエスケープする必要があります。二重引用符で囲まれた文字列の中で、一重引用符を使うことができます。
$myString = "A `"double quoted`" string which also has 'single quotes'."
リテラル文字列
リテラル文字列は、変数や特殊文字を評価しない文字列です。これは、一重引用符を使用して作成されます。
$myLiteralString = 'Simple text including special characters (`n) and a $variable-reference'
リテラル文字列の中で一重引用符を使用するには、二重引用符またはリテラルhere-stringを使用します。二重qutoはリテラル文字列内で安全に使用できます
$myLiteralString = 'Simple string with ''single quotes'' and "double quotes".'
フォーマット文字列
$hash = @{ city = 'Berlin' }
$result = 'You should really visit {0}' -f $hash.city
Write-Host $result #prints "You should really visit Berlin"
書式文字列は、 -f
演算子またはstatic [String]::Format(string format, args)
.NETメソッドで使用できます。
複数行の文字列
PowerShellで複数行の文字列を作成するには、複数の方法があります。
特殊文字をキャリッジリターンや改行に手動で使用するか、
NewLine
環境変数を使用してシステムの "改行"値を挿入することがNewLine
ます)"Hello`r`nWorld" "Hello{0}World" -f [environment]::NewLine
文字列を定義しながら改行を作成する(引用符を閉じる前に)
"Hello World"
here-stringを使用します。 これが最も一般的な手法です。
@" Hello World "@
Here-string
ここでは、複数の文字列を作成するときに文字列が非常に便利です。他のマルチライン文字列と比較した最大の利点の1つは、バックティックを使用して引用符をエスケープしなくても使用できるということです。
Here-string
ここでは、文字列で始まる@"
と改行で終わる"@
それ自身の行に"@
さえ空白ではない/タブ、行の最初の文字でなければなりません )。
@"
Simple
Multiline string
with "quotes"
"@
リテラルのhere-string
通常のリテラル文字列のように式を展開したくない場合は、一重引用符を使用してリテラルのhere-stringを作成することもできます。
@'
The following line won't be expanded
$(Get-Date)
because this is a literal here-string
'@
文字列の連結
文字列内の変数の使用
二重引用符で囲まれた文字列内の変数を使用して文字列を連結することができます。これはプロパティでは機能しません。
$string1 = "Power"
$string2 = "Shell"
"Greetings from $string1$string2"
+
演算子を使用する
+
演算子を使用して文字列を結合することもできます。
$string1 = "Greetings from"
$string2 = "PowerShell"
$string1 + " " + $string2
これはオブジェクトのプロパティでも機能します。
"The title of this console is '" + $host.Name + "'"
サブ式の使用
部分式$()
の出力/結果は、文字列で使用できます。これは、オブジェクトのpropetiesにアクセスするときや複雑な式を実行するときに便利です。サブ式には、セミコロンで区切られた複数のステートメントを含めることができます;
"Tomorrow is $((Get-Date).AddDays(1).DayOfWeek)"
特殊文字
二重引用符で囲まれた文字列の中で使用される場合、エスケープ文字(バックティック`
)は特殊文字を表します。
`0 #Null
`a #Alert/Beep
`b #Backspace
`f #Form feed (used for printer output)
`n #New line
`r #Carriage return
`t #Horizontal tab
`v #Vertical tab (used for printer output)
例:
> "This`tuses`ttab`r`nThis is on a second line"
This uses tab
This is on a second line
特別な意味を持つ特殊文字をエスケープすることもできます:
`# #Comment-operator
`$ #Variable operator
`` #Escape character
`' #Single quote
`" #Double quote