Sto eseguendo alcune semplici impostazioni di una variabile in un file BAT. Non sta impostando la variabile. Non ci sono costrutti strani, è semplice sostituzione di variabili usando lo stesso nome di variabile. Ho ridotto il file BAT ad una semplice prova di versione di concetto:Variabile file set batch Variabile non funzionante
set TESTVAR = "No Value"
ECHO var = %TESTVAR%
set TESTVAR = ""
ECHO var = %TESTVAR%
set TESTVAR = "New value"
ECHO var = %TESTVAR%
E l'output mostra che nessuno dei comandi SET sembra funzionare. Che diamine mi manca qui. Ho scritto file BAT per anni e non l'ho mai visto prima. Ecco l'output di esecuzione di questo test:
C:\Users\rs02130\Desktop>test
C:\Users\rs02130\Desktop>set TESTVAR = "No Value"
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>set TESTVAR = ""
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>set TESTVAR = "New value"
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>
mi aspetto comanda la prima e la terza ECHO per visualizzare i valori di "nessun valore" e "Nuovo valore". Che diavolo sta succedendo?
Nessuno ha detto che è necessario inserire spazi tra Testvar e il segno di uguale. – jeb
Non ne siamo sicuri, ma forse è necessario 'EnableDelayedExpansion' – mavrosxristoforos
Spazi intorno ai segni uguali ... Sapevo che era qualcosa di veramente stupido. Grazie. –