2012-09-08 21 views
7

ich eine einfache Batch-Datei-Skripte excute Tring:Warum erhalte ich „Echo ist auf“, wenn eine Variable in Batch-Versuch zu drucken

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

Wenn ich es in XP am laufen, es gibt mir erwartet Ausgabe, aber wenn ich es in Vista oder Windows 7 ausführe, bekomme ich "Echo ist an", wenn ich versuche, (Echo) Wert zu drucken.

Im Folgenden finden Sie die Ausgabe des Programms:

G:\2012>abc.bat 1 

G:\2012>echo 1 
1 

G:\2012>set var = 1 

G:\2012>echo 
ECHO is on. 

G:\2012> 
+0

Sollte das nicht "% 1" sein? (Prozent geht vor der Ziffer) – knittl

+0

ja, ich habe es korrigiert – user1656253

+0

set var =% 1 pause ausgabe: = C: \> set var = C: \ Benutzer \ vpatel \ Desktop> pause Drücken Sie eine beliebige Taste, um fortzufahren. . . Fragt nicht nach Benutzer in –

Antwort

13

Lassen Sie sich in Ihrem Set Ausdruck der Räume befreien. Es kann und soll keine Leerzeichen auf beiden Seiten des Gleichheitszeichens sein (=)

set var=%1 

BTW: ich in der Regel meint all Batch-Startdateien mit @echo off, und am Ende sie mit @echo auf zu, so kann ich Vermeiden Sie es, Code mit der Ausgabe der Batch-Datei zu mischen. Es macht nur Ihre Batch-Datei ein wenig schöner und sauberer.

+0

ja, es ist Platz, der dieses Problem verursacht. danke – user1656253

+0

Gern geschehen. –