531

バッチ ファイルで変数を定義して使用しようとしています。それは単純であるように見えます:

@echo off

set location = "bob"
echo We're working with "%location%"

私が得る出力は次のとおりです。

We're working with ""

何が起きてる?変数がエコーされないのはなぜですか?

4

4 に答える 4

652

の前のスペース=は名前の一部として解釈され、後のスペース(および引用符)は値の一部として解釈されます。したがって、作成した変数は。で参照できます%location %。それが必要でない場合は、定義内の余分なスペースを削除してください。

于 2012-05-11T14:03:17.950 に答える
298

スペースは重要です。'location ' の値で名前が付けられた変数を作成しました
' "bob"'注-スペースの場所を示すために、一重引用符で囲むことが追加されました。

値に引用符が必要な場合、コードは次のようになります。

set location="bob"

引用符が必要ない場合、コードは次のようになります。

set location=bob

またはさらに良い

set "location=bob"

& |最後の構文は、不注意による末尾のスペースが値に入るのを防ぎ、などの特殊文字からも保護します。

于 2012-05-11T14:04:12.613 に答える