ketika saya menjalankan skrip ini (dari file .bat):
set var1=true
if "%var1%"=="true" (
set var2=myvalue
echo %var2%
)
Saya selalu mendapatkan:
ECHO is on.
Artinya var2
variabel tidak benar-benar disetel. Adakah yang bisa membantu saya memahami mengapa?
&
dan&&
. Kode iniset x=some & set y=%x%thing & echo results %y%
menghasilkan%x%thing
.Saya agak telat ke partai tapi cara lain untuk mengatasi kondisi ini adalah melanjutkan proses di luar
if
, seperti iniAtau / dan gunakan
goto
sintaksDengan cara ini ekspansi terjadi "pada waktunya" dan Anda tidak perlu
setlocal EnableDelayedExpansion
. Intinya, jika Anda memikirkan kembali desain skrip Anda, Anda dapat melakukannya seperti itusumber
echo off set var1=true if "%var1%"=="true" ( set var2=myvalue ) echo %var2% pause
.. dan berhasil. "jika Anda akan membuat variabel dalam file batch yang dapat diakses di mana saja dalam program." . aticleworld.com/batch-file-variables-and-scope