Dichiarazione e utilizzo di una variabile nel file batch di Windows (.BAT)

Sto cercando di dichiarare e utilizzare una variabile nel mio file batch. Sembra che dovrebbe essere semplice.

@ECHO OFF SET location = "bob" ECHO We're working with "%location%" 

L’output che ottengo è:

 We're working with "" 

Cosa sta succedendo qui? Perché la mia variabile non viene echeggiata?

Lo spazio prima di = viene interpretato come parte del nome e lo spazio che lo segue (oltre alle virgolette) viene interpretato come parte del valore. Quindi la variabile che hai creato può essere referenziata con %location % . Se quello non è quello che vuoi, rimuovi lo spazio extra (s) nella definizione.

Gli spazi sono significativi. Hai creato una variabile denominata (racchiudendo singole virgolette aggiunte per mostrare la posizione dello spazio) 'location ' con un valore di ' "bob"' .

Se vuoi virgolette nel tuo valore, allora il tuo codice dovrebbe assomigliare

 set location="bob" 

Se non vuoi le virgolette, dovrebbe essere il tuo codice

 set location=bob 

O ancora meglio

 set "location=bob" 

L’ultima syntax impedisce agli spazi involontari di ottenere il valore e protegge anche da caratteri speciali come & | eccetera.

inserire location.bat

 @echo off cls set /p "location"="bob" echo We're working with %location% pause 

produzione

 We're working with bob 

(errori hai fatto: space e " " )