豚吐露@wiki

クォーテーションの違いについて

最終更新:

ohden

- view
管理者のみ編集可

クォーテーションの違いについて

Windows 7 Professional


ダブルクォーテーションとシングルクォーテーションの違いについて、ダブルクォーテーションだと値の有無判定で動かないパターンがあったのでメモ。
e.g.) ダブルクォーテーション
@echo off
if "" == "%1" (
 echo 引数無し
) else (
 echo 引数有り
)
e.g.) シングルクォーテーション
@echo off
if '' == '%1' (
 echo 引数無し
) else (
 echo 引数有り
)

どうやら、バッチではシングルクォーテーションは、ただの文字らしい。
もちろん、ダブルクォーテーションはただの文字では無い。
で、何がトリガなのかは分からんのじゃが、たまーにダブルクォーテーション付けとるにも関わらず、付いてないことになったりして、比較演算が正しく動かん事があった。(´・ω・`)
※上の例のechoの部分は、当然がっつり処理を書いてる状態。

空かどうかの判定では、環境変数が空だった時に比較できなくなることを防ぐために環境変数の両端をくくる。
が、空だった時に正しく判定できれば良いだけなので、クォーテーションでなくても構わない。数字でもアルファベットでもなんでも良い。
なので、コマンドプロンプトの余計なお節介の被害に合わないように、空かの判定ではダブルクォーテーションではなく、シングルクォーテーションを用いるようにした方が良い。



更新日: 2014年08月12日 (火) 14時09分00秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
目安箱バナー