Saya mencoba mendefinisikan dan menggunakan variabel dalam file batch. Sepertinya harus sederhana:
@echo off
set location = "bob"
echo We're working with "%location%"
Output yang saya dapatkan adalah sebagai berikut:
We're working with ""
Apa yang terjadi di sini? Mengapa variabel saya tidak digaungkan?
batch-file
cmd
environment-variables
Jamie Dixon
sumber
sumber
=
ditafsirkan sebagai bagian dari nama maka variabel tidak dapat dirujuk sebagai%location%
, itu harus dirujuk sebagai%location %
. Apakah itu salah cetak?alias x = y
di * nix land?x = y
?Ruang-ruangnya signifikan. Anda membuat variabel bernama
'location '
dengan nilai' "bob"'
. Catatan - melampirkan tanda kutip tunggal ditambahkan untuk menunjukkan lokasi ruang.Jika Anda ingin mengutip dalam nilai Anda, maka kode Anda akan terlihat seperti
Jika Anda tidak ingin mengutip, maka kode Anda akan terlihat seperti
Atau lebih baik lagi
Sintaks terakhir mencegah spasi tambahan yang tidak disengaja dari mendapatkan nilai, dan juga melindungi terhadap karakter khusus seperti
&
|
dll.sumber
%
, dan mungkin!
jika ekspansi yang tertunda diaktifkan. Tetapi jika nilai tidak berisi tanda kutip, maka Anda harus khawatir tentang kapan untuk melarikan diri karakter racun seperti|
,&
, dllmemasukkan
location.bat
keluaran
(kesalahan yang Anda lakukan:
space
dan" "
)sumber
set /p
meminta pengguna dan menyimpan jawaban dalam variabel yang ditentukan. misalnya,set /p name="What is your name? " & echo Hello, %name%.
set /p "varname"="text"
salah, itu menciptakan variabel bernamalocation"
(dengan kutipan trailing!). Seharusnya begituset /p location="bob"
. Tetapi bahkan kemudian, itu tidak cocok dengan pertanyaan lagi