variables - por - comandos batch avanzados
La variable del conjunto de archivos por lotes no funciona (1)
El problema son los espacios alrededor del signo igual. Esto debería hacer lo que quieras.
set TESTVAR="No Value"
ECHO var = %TESTVAR%
set TESTVAR=""
ECHO var = %TESTVAR%
set TESTVAR="New value"
ECHO var = %TESTVAR%
Esta pregunta ya tiene una respuesta aquí:
Estoy haciendo una configuración simple de una variable en un archivo BAT. No está configurando la variable. No hay construcciones extrañas, es simple sustitución de variables usando el mismo nombre de variable. Reduje el archivo BAT a una versión de prueba de concepto simple:
set TESTVAR = "No Value"
ECHO var = %TESTVAR%
set TESTVAR = ""
ECHO var = %TESTVAR%
set TESTVAR = "New value"
ECHO var = %TESTVAR%
Y el resultado muestra que ninguno de los comandos SET parece estar funcionando. ¿Qué diablos estoy perdiendo aquí? He estado escribiendo archivos BAT durante años y nunca había visto esto antes. Aquí está el resultado de ejecutar esta prueba:
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>
Espero que el primer y el tercer comando de ECHO muestren los valores "Sin valor" y "Nuevo valor". ¿Qué diablos está pasando?