2011-08-24 20 views
5

Tôi đang lặp qua đầu ra lệnh trong vòng lặp for. Hãy xem xét mã sau:Tệp hàng loạt: ngăn chặn đầu ra lỗi lệnh khi được sử dụng trong vòng lặp for

for /F "tokens=1 delims=?=" %%A in ('set __variable') do (set %%A=) 

Về cơ bản tôi đang cố gắng xóa giá trị của mọi biến môi trường có tên bắt đầu bằng "__variable". Tuy nhiên, nếu không có biến như vậy được thiết lập, tôi nhận được một lỗi nói rằng "biến môi trường __variable không được xác định", mà không phải là cái gì mà tôi muốn hiển thị trên bàn điều khiển của tôi. Vì vậy, một cách tự nhiên, tôi sẽ thay đổi mã của mình như sau:

for /F "tokens=1 delims=?=" %%A in ('set __variable 2> NUL') do (set %%A=) 

Nhưng bây giờ tôi nhận được lỗi mới cho biết "2> đã bất ngờ tại thời điểm này". hoặc một cái gì đó của hiệu ứng đó. Bây giờ tôi bị mắc kẹt; có cách nào để tôi hoàn thành mục tiêu của mình mà không gặp lỗi chuẩn hiển thị trên màn hình không?

+0

xin vui lòng thêm một thẻ ngôn ngữ – arnaud576875

Trả lời

10

Đối với Windows NT 4 và sau đó, bạn sẽ cần phải thoát khỏi các đường ống và chuyển hướng những biểu tượng, được thực hiện bằng cách đặt trước chúng với dấu mũ():

for /F "tokens=1 delims=?=" %A in ('set __variable 2^>NUL') do (set %A=) 
Các vấn đề liên quan