#author("2021-02-06T16:02:21+09:00","default:ryuichi","ryuichi")
#author("2021-02-06T16:03:05+09:00","default:ryuichi","ryuichi")
* 文字列のクォート [#pfe9b327]

** クォートは省略できる [#m8428c99]

 Get-Item "a.txt"
 Get-Item 'a.txt'
 Get-Item a.txt

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

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

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

** クォートのエスケープ [#v3c718a8]

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

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

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

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

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

- 参考 http://www.rlmueller.net/PowerShellEscape.htm

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

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

** 参考 [#qd70c634]

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

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