Why I am getting "Echo is on" when trying to print a variable in batch

Rahul J picture Rahul J · Sep 8, 2012 · Viewed 17.4k times · Source

I tring to excute a simple batch file scripts :

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

When I am running it in XP, it is giving me expected output, but When I am running it in Vista or windows 7, I am getting "Echo is On" when trying to print (echo) value.

Below is the output of program :

G:\2012>abc.bat 1

G:\2012>echo 1
1

G:\2012>set var = 1

G:\2012>echo
ECHO is on.

G:\2012>

Answer

C Johnson picture C Johnson · Sep 8, 2012

Get rid of the spaces in your set expression. There can and should be no spaces on either side of the equal sign (=)

set var=%1

BTW: I usually start all my batch files with @echo off, and end them with @echo on too, so I can avoid mixing code with the output of the batch file. It just makes your batch file output a little nicer and cleaner.