バッチファイルで変数を定義して使用しようとしています。それはそれが簡単であるべきであるように見えます:
@echo off
set location = "bob"
echo We're working with "%location%"
私が得る出力は次のとおりです。
We're working with ""
何が起きてる?変数がエコーされないのはなぜですか?
=
の前のスペースは名前の一部として解釈され、その後のスペース(および引用符)は値の一部として解釈されます。したがって、作成した変数は%location %
で参照できます。それでも問題が解決しない場合は、定義から余分なスペースを削除します。
スペースが重要です。 'location '
という値を持つ' "bob"'
という名前の(スペースの場所を示すために追加された単一引用符で囲む)変数を作成しました。
値に引用符が必要な場合は、コードは次のようになります。
set location="bob"
引用符が不要な場合は、コードは次のようになります。
set location=bob
それ以上
set "location=bob"
最後の構文は、不用意な末尾のスペースが値に入るのを防ぎ、また&|のような特殊文字からも保護します。等.
入力location.bat
@echo off
cls
set /p "location"="bob"
echo We're working with %location%
pause
出力
We're working with bob
(失敗しました:space
と" "
)