文字列のクォート

クォートは省略できる

 Get-Item "a.txt"
 Get-Item 'a.txt'
 Get-Item a.txt
  • 上の場合、ファイル名 a.txt がスペースを含まないなら、クォートを省略できる。

ダブルクォートは変数展開する、シングルクォートはしない

 echo "DEBUG: $env:OS" # => DEBUG: Windows_NT
 echo 'DEBUG: $env:OS' # => DEBUG: $env:OS

クォートのエスケープ

ダブルクォートの中でクォートをエスケープする場合

 echo "It's you"  # => It's you ダブルクォートの中ではシングルクォートはエスケープする必要ない
 echo "It`"s you" # => It"s you ダブルクォートは`バックティックでエスケープする、もしくは、
 echo "It""s you" # => It"s you ダブルクォートを重ねて""のようにしてエスケープしてもよい

シングルクォートの中でクォートをエスケープする場合

 echo 'It''s you' # => It's you シングルクォートの中ではシングルクォートを重ねてエスケープする
 echo 'It`'s you' # => (エラー) シングルクォートの中では`でエスケープすることはできないので注意!

ダブルクォートの中で$ダラーや`バックティックをクォートする

 echo "$PSHOME"  # => C:\Windows\System32\WindowsPowerShell\v1.0 変数PSHOMEが展開される
 echo "`$PSHOME" # => $PSHOME                                    `でエスケープすれば変数PSHOMEは展開されない
 echo "``"       # => ` バックティック自体を表示するには``のように2個重ねる

オブジェクト変数を変数展開するには$()でサブシェル展開する

 $file = Get-Item a.txt
 echo "DEBUG: $($file.LastWriteTime)" # => DEBUG: 04/30/2018 12:33:37

参考

https://www.petri.com/can-quote-quoting-variable-expansion-powershell


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2021-02-06 (土) 16:03:05