Pregunta

¿Qué hice yo para arruinar mi consola CMD? Windows XP Pro, abra una ventana de CMD y hacer:

C:\>set tt = name

C:\>set tt
tt = name

C:\>echo %tt%
%tt%

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

El comando de eco no funciona por alguna razón. Yo puedo repetir las variables incorporadas bien. Probado en otro ordenador y que funciona como se esperaba

¿Fue útil?

Solución

El comando set no tiene espacios. La sintaxis correcta sería:

set tt=name

Lo que ha hecho en su ejemplo se establece una variable de entorno tt<space>. Con esto en mente, puede intentar lo siguiente:

echo %tt%

y ver su salida.

Otros consejos

¿Usted ha intentado establecer la variable sin espacio entre los iguales? (Conjunto tt = nombre)

La respuesta más upvoted aquí, aceptado hace mucho, afirma que:

  

"El comando set no tiene espacios."

Pero eso no es correcto: La variable %tt % funciona realmente: Se puede ajustar y se hace referencia. (A pesar de que es confuso.)

Problema reproducen:

De hecho, en mi 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

Lo intenté y conseguí:

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

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

casos resueltos:

La variable de %tt% intuitivamente esperado no se establece. Pero %tt % se fija en su lugar:

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

Aún más, con un espacio al final del valor, set tt4 = name :

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

Conclusiones:

El comando set no trim():

  • El espacio antes de "=" se incluye para la var_name.
  • El espacio después de "=" se incluye para la var_value.
  • El espacio al final de la var_value se incluye para ello.

Por otro lado:

  • El espacio al principio de la var_name no se incluye a ella, lo cual es bastante normal que los argumentos de línea de comandos en general.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top