●改行はバッククォート
PS C:\Users\me> 1 + 2 `
>> + 3
6
●コメント
#1行コメント
<#複数行
コメント#>
●式モード
1 + 1
$a = 1 + 1
$a
●コマンドモード
PS C:\Users\me> Write-Output 1 + 1
1
+
1
●優先順位
()>^>*/>+-
PS C:\Users\me> echo (Get-Location)
Path
----
C:\Users\me
PS C:\Users\me> echo (Get-Location).path
C:\Users\me
PS C:\Users\me> (Get-Location).path
C:\Users\me
PS C:\Users\me> ($a=1)
1
●エスケープシーケンス`(バッククォート)
●ヒアドキュメント @” 変数は展開される "@、@' 展開されない '@
PS C:\Users\me> @"
>> kasjfasdf
>> askjdfkasd
>> "@
kasjfasdf
askjdfkasd
”や’でも複数行の文字列が作れるが、”や’はエスケープが必要
●スクリプトブロック
PS C:\Users\me> $a={
>> (get-date).Date
>> (get-date).DateTime
>> }
PS C:\Users\me> & $a
2020年12月24日 0:00:00
2020年12月24日 0:13:39
PS C:\Users\me> . $a
2020年12月24日 0:00:00
2020年12月24日 0:14:45
●文字列からスクリプトブロックを作成
PS C:\Users\me> $command=@"
>> (get-date).Date
>> (get-date).DateTime
>> "@
PS C:\Users\me> $command
(get-date).Date
(get-date).DateTime
PS C:\Users\me> $a=[scriptblock]::Create($command)
PS C:\Users\me> $a
(get-date).Date
(get-date).DateTime
PS C:\Users\me> & $a
2020年12月24日 0:00:00
2020年12月24日 0:33:34
●変数
$a
${env:programFiles(x86)}
●変数代入
$a,$b = 1,2
$a=$b=$c="asdf"
●定数