2012-09-08 26 views
7

Tôi Tring để thực thi một cách đơn giản các kịch bản batch file:Tại sao tôi nhận được "Echo là trên" khi cố gắng in một biến trong hàng loạt

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

Khi tôi chạy nó trong XP, nó được đem lại cho tôi dự kiến đầu ra, nhưng khi tôi đang chạy nó trong Vista hoặc windows 7, tôi nhận được "Echo là On" khi cố gắng để in (echo) giá trị.

Dưới đây là sản phẩm của chương trình:

G:\2012>abc.bat 1 

G:\2012>echo 1 
1 

G:\2012>set var = 1 

G:\2012>echo 
ECHO is on. 

G:\2012> 
+0

Không nên là '% 1'? (phần trăm đi trước chữ số) – knittl

+0

có, tôi đã sửa nó – user1656253

+0

đặt var =% 1 tạm dừng đầu ra: = C: \> đặt var = C: \ Users \ vpatel \ Desktop> tạm dừng Nhấn phím bất kỳ để tiếp tục. . . Không yêu cầu người dùng inout –

Trả lời

13

Để loại bỏ các khoảng trống trong biểu hiện thiết lập của bạn. Có thể và nên là không có khoảng trống ở hai bên dấu bằng (=)

set var=%1 

BTW: Tôi thường bắt đầu tất cả các tập tin batch của tôi với @echo off, và kết thúc chúng với @echo trên quá, vì vậy tôi có thể tránh trộn mã với đầu ra của tập tin thực thi. Nó chỉ làm cho đầu ra tập tin batch của bạn đẹp hơn và sạch hơn một chút.

+0

có, đó là không gian gây ra sự cố này. cảm ơn – user1656253

+0

Bạn được chào đón. –

Các vấn đề liên quan