Ventanas eco de comando no se puede repetir una variable establecido por el usuario
-
19-09-2019 - |
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
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.