2012-09-08 25 views
7

mi Tring per excute un semplice script di file batch:perché sto ottenendo "Echo è in" quando si tenta di stampare una variabile in lotti

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

Quando sto facendo funzionare in XP, che sta dando mi aspettavo output, ma quando lo sto eseguendo in Vista o Windows 7, ricevo "Echo is On" quando provo a stampare (eco) valore.

Di seguito si riporta l'output del programma:

G:\2012>abc.bat 1 

G:\2012>echo 1 
1 

G:\2012>set var = 1 

G:\2012>echo 
ECHO is on. 

G:\2012> 
+0

Non dovrebbe essere '% 1'? (la percentuale precede la cifra) – knittl

+0

sì, l'ho corretto – user1656253

+0

set var =% 1 pausa output: = C: \> set var = C: \ Users \ vpatel \ Desktop> pausa Premere un tasto qualsiasi per continuare. . . Non ha chiesto all'utente inout –

risposta

13

Sbarazzarsi degli spazi nella vostra espressione set. Ci possono e devono essere spazi su entrambi i lati del segno di uguale (=)

set var=%1 

BTW: Io di solito inizio a tutti i miei file batch con @echo off, e terminare con @echo troppo, così posso evitare di mescolare il codice con l'output del file batch. Rende l'output del tuo file batch un po 'più bello e pulito.

+0

sì, è lo spazio che sta causando questo problema. grazie – user1656253

+0

Sei il benvenuto. –

Problemi correlati