豚吐露@wiki
クォーテーションの違いについて
最終更新:
Bot(ページ名リンク)
-
view
クォーテーションの違いについて
Windows 7 Professional
ダブルクォーテーションとシングルクォーテーションの違いについて、ダブルクォーテーションだと値の有無判定で動かないパターンがあったのでメモ。
e.g.) ダブルクォーテーション
e.g.) ダブルクォーテーション
@echo off if "" == "%1" ( echo 引数無し ) else ( echo 引数有り )
e.g.) シングルクォーテーション
@echo off if '' == '%1' ( echo 引数無し ) else ( echo 引数有り )
どうやら、バッチではシングルクォーテーションは、ただの文字らしい。
もちろん、ダブルクォーテーションはただの文字では無い。
で、何がトリガなのかは分からんのじゃが、たまーにダブルクォーテーション付けとるにも関わらず、付いてないことになったりして、比較演算が正しく動かん事があった。(´・ω・`)
※上の例のechoの部分は、当然がっつり処理を書いてる状態。
もちろん、ダブルクォーテーションはただの文字では無い。
で、何がトリガなのかは分からんのじゃが、たまーにダブルクォーテーション付けとるにも関わらず、付いてないことになったりして、比較演算が正しく動かん事があった。(´・ω・`)
※上の例のechoの部分は、当然がっつり処理を書いてる状態。
空かどうかの判定では、環境変数が空だった時に比較できなくなることを防ぐために環境変数の両端をくくる。
が、空だった時に正しく判定できれば良いだけなので、クォーテーションでなくても構わない。数字でもアルファベットでもなんでも良い。
なので、コマンドプロンプトの余計なお節介の被害に合わないように、空かの判定ではダブルクォーテーションではなく、シングルクォーテーションを用いるようにした方が良い。
が、空だった時に正しく判定できれば良いだけなので、クォーテーションでなくても構わない。数字でもアルファベットでもなんでも良い。
なので、コマンドプロンプトの余計なお節介の被害に合わないように、空かの判定ではダブルクォーテーションではなく、シングルクォーテーションを用いるようにした方が良い。
更新日: 2014年08月12日 (火) 14時09分00秒