Question

Qu'est-ce que je fais bousiller ma coquille CMD? Windows XP Pro, ouvrez une fenêtre cmd et faire:

C:\>set tt = name

C:\>set tt
tt = name

C:\>echo %tt%
%tt%

C:\>echo %time%
14:13:28.67

La commande echo ne fonctionne pas pour une raison quelconque. Je peux l'écho des variables intégrées très bien. Essayé sur un autre ordinateur et qui fonctionne comme prévu

Était-ce utile?

La solution

La commande set ne prend pas d'espaces. La syntaxe correcte serait:

set tt=name

Qu'est-ce que vous avez fait dans votre exemple est une tt<space> variable d'environnement. Avec cela à l'esprit, vous pouvez essayer ceci:

echo %tt%

et voir votre sortie.

Autres conseils

Avez-vous essayé de placer la variable sans espace entre les égaux? (Set tt = nom)

La réponse la plus upvoted ici, accepté il y a bien, affirme que:

  

"La commande set ne prend pas d'espaces."

Mais ce n'est pas correct: La variable %tt % fonctionne réellement: Il peut être réglé et référencé. (Malgré cela confusion.)

Problème reproduit:

En effet, sur mon Win7:

C:\>set os
OS=Windows_NT

C:\>set tt = name
C:\>set tt2= name
C:\>set tt3=name
C:\>set tt
tt = name
tt2= name
tt3=name

J'ai essayé et obtenu:

C:\>echo "%os%"
"Windows_NT"

C:\>echo "%tt3%"
"name"
C:\>echo "%tt2%"
" name"
C:\>echo "%tt%"
"%tt%"

PLAINTES RÉGLÉES:

La %tt% variable de manière intuitive attendue n'est pas définie. Mais %tt % est mis à la place:

C:\>echo "%tt %"
" name"

Encore plus, avec un espace à la fin de la valeur, set tt4 = name :

C:\>echo "%tt4 %"
" name "

Conclusions:

La commande set ne trim() pas:

  • L'espace avant "=" est inclus à la var_name.
  • L'espace après est inclus "=" au var_value.
  • L'espace à la fin de l'var_value est inclus à elle.

Par contre:

  • L'espace au début de la var_name ne sont pas inclus à elle, ce qui est plutôt normal pour les arguments de ligne de commande en général.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top