2012-09-08 12 views
7

I Tring para excute unas simples secuencias de comandos de archivos por lotes:¿Por qué estoy recibiendo "Echo está en" al intentar imprimir una variable en lotes

echo %1 
set var = %1 
echo %var% 

Cuando estoy corriendo en XP, se está dando me esperaba salida, pero cuando lo estoy ejecutando en Vista o Windows 7, estoy recibiendo "Echo is On" cuando intento imprimir (eco) el valor.

A continuación se muestra la salida del programa:

G:\2012>abc.bat 1 

G:\2012>echo 1 
1 

G:\2012>set var = 1 

G:\2012>echo 
ECHO is on. 

G:\2012> 
+0

¿No debería ser '% 1'? (porcentaje va antes del dígito) – knittl

+0

sí, lo he corregido – user1656253

+0

conjunto var =% 1 pausa salida: = C: \> establecer var = C: \ Users \ vpatel \ Desktop> pausa Presione cualquier tecla para continuar. . . No pregunta al usuario por –

Respuesta

13

deshacerse de los espacios en su conjunto expresión. No puede ni debe haber espacios a ambos lados del signo igual (=)

set var=%1 

BTW: Por lo general comienzan todos mis archivos por lotes con @echo apagado, y terminar con @echo demasiado, por lo que puedo Evite mezclar código con la salida del archivo por lotes. Simplemente hace que la salida del archivo por lotes sea un poco más agradable y limpia.

+0

sí, es el espacio el que está causando este problema. gracias – user1656253

+0

De nada. –

Cuestiones relacionadas