Digamos que ejecuto lo siguiente en el shell CMD:
set FOO=bar
¿Hay alguna forma de indefinir esta variable, además de reciclar el shell CMD?
windows
batch-file
cmd
user288004
fuente
fuente
cmd.exe
)?set var=
respuesta funciona con MS-DOS 6.22 command.com de la misma manera que con Windows cmd.exe. (Sin embargo, a diferencia de Windows, poner comillas dobles alrededor de var = no funciona, sino que crea una variable de entorno cuyo nombre comienza con una comilla doble).Respuestas:
Sí, puedes desarmarlo con
O usando explícitamente:
Asegúrese de que no aparezcan caracteres extraños (invisibles) después del
=
signo. Es decir:set FOO=
es diferente deset FOO=
.fuente
Una forma segura de desarmar la variable es usar también comillas, entonces no hay problemas con los espacios finales.
fuente
otro método
Nota: esto no funcionaría en un símbolo del sistema interactivo. Pero funciona en secuencia de comandos por lotes.
fuente
Esto funciona para mí en mi shell CMD de Windows 7:
fuente
set
comando. Si lo intentaset FOO = bar
y luego lo intentaset FOO=
, no desarmará 'FOO'. Sin embargo, por alguna razón, no son (¿tan?) Importantes por dentro% %
.Ofrecería lo siguiente solo como comentario, pero creo que es lo suficientemente importante como para valerse por sí solo.
Muchas de las respuestas anteriores mencionaron que hay que tener cuidado con los espacios finales; y seguro que es cierto. Sin embargo, descubrí que a veces los espacios finales solo quieren ingresar allí sin importar qué, particularmente si está haciendo una línea de comando de una sola línea y necesita el espacio como un separador de comando.
Esta es la solución a ese problema:
Al envolver la declaración entre comillas dobles de esa manera, el problema del espaciado se puede evitar por completo. Esto también puede ser realmente útil cuando las variables se crean concatenando para eliminar espacios entre, por ejemplo, rutas, por ejemplo:
fuente