Disons que j'exécute ce qui suit dans le shell CMD:
set FOO=bar
Existe-t-il un moyen d'annuler la définition de cette variable, autre que de recycler le shell CMD?
windows
batch-file
cmd
user288004
la source
la source
cmd.exe
)?set var=
réponse fonctionne sous MS-DOS 6.22 command.com de la même manière que sous Windows cmd.exe. (Cependant, contrairement à Windows, mettre des guillemets doubles autour de var = ne fonctionne pas, mais crée une variable d'environnement dont le nom commence par un guillemet double.)Réponses:
Oui, vous pouvez le désactiver avec
Ou en utilisant explicitement:
Assurez-vous qu'aucun caractère superflu (invisible) de fin ne vient après le
=
signe. C'est:set FOO=
est différent deset FOO=
.la source
Un moyen sûr de désactiver la variable est d'utiliser également des guillemets, alors il n'y a pas de problèmes avec les espaces de fin.
la source
une autre méthode
Remarque: cela ne fonctionnerait pas sur une invite de commande interactive. Mais fonctionne en script batch.
la source
Cela fonctionne pour moi dans mon shell Windows 7 CMD:
la source
set
commande. Si vous essayezset FOO = bar
puis essayezset FOO=
, cela ne désactive pas «FOO». Pour une raison quelconque, cependant, ils ne sont pas (aussi?) Significatifs à l'intérieur% %
.Je proposerais ce qui suit uniquement à titre de commentaire, mais je pense que c'est suffisamment important pour être autonome.
Beaucoup de réponses précédentes mentionnaient qu'il fallait se méfier des espaces de fin; et c'est sûr que c'est vrai. Cependant, j'ai trouvé que parfois les espaces de fin veulent juste y entrer quoi qu'il arrive - en particulier si vous faites une ligne de commande à une ligne et avez besoin de l'espace comme séparateur de commandes.
Voici la solution à ce problème:
En entourant la déclaration de guillemets doubles de cette façon, le problème d'espacement peut être entièrement évité. Cela peut également être très utile lorsque des variables sont créées par concaténation pour éliminer les espaces entre - par exemple - des chemins, par exemple:
la source