2012-01-13 23 views
8

Tôi đang tạo một tập tin batch cần mở một tập lệnh batch thứ hai trong một cửa sổ cmd riêng biệt. Tôi có thể sử dụng tất cả các mã của tôi thành công nếu tôi sử dụng lệnh "gọi" thay vì "bắt đầu" nhưng điều đó không khởi chạy tập lệnh trong cửa sổ riêng của nó. Tôi đã nhận được lỗi này nhiều lần trong quá khứ và nó luôn liên quan đến lệnh bắt đầu. Tôi thay đổi cách tôi thực hiện quy trình và tất cả hoạt động tốt. Tại sao lệnh bắt đầu lại gây ra lỗi này và làm thế nào tôi có thể sửa nó? Dưới đây là một mẫu mã của tôi."không đủ bộ nhớ để xử lý lệnh này" sau khi sử dụng lệnh bắt đầu trong một tập tin batch với các cửa sổ 7

start "" /w "k:\Bundle Support files\record serial.cmd" 

Các tập tin batch thứ hai sẽ mở ra và hoàn thành tất cả các nhiệm vụ trừ người cuối cùng đó là

goto :exit 

:exit 

Tôi đã thay đổi lệnh cuối cùng trong tập tin nhiều lần và nó luôn luôn làm cho nó thông qua toàn bộ lô hàng nhưng lệnh cuối cùng sẽ kết thúc đợt đó với lỗi "không đủ bộ nhớ có sẵn để xử lý lệnh này". Điều này xảy ra trên nhiều máy (phần cứng khác nhau) và nhiều hệ điều hành. Tôi đã cố gắng sửa chữa IRPStackSize mà không có may mắn. Bất kỳ đề xuất nào về lý do tôi nhận được lỗi này?

Cảm ơn, Kevin

+1

sử dụng goto: tạm biệt và: tạm biệt làm nhãn. Thoát có thể được xử lý như một từ dành riêng – rene

+0

@rene Tôi đã có vấn đề với nó đang được bảo lưu. Cuối cùng cũng vậy. 'goto goodbye' và': goodbye' là một gợi ý hay. Tôi thường sử dụng Fin. – MaskedPlant

+0

Cảm ơn các đề xuất nhưng tôi nghĩ có lẽ tôi không đủ rõ ràng trong câu hỏi của mình. Tôi đang cố gắng tìm ra cách "bắt đầu" lệnh hoạt động và tại sao khi tôi sử dụng nó tập tin thực thi đó là "Bắt đầu" sẽ không kết thúc NO MATTER những gì lệnh cuối cùng. Tôi sẽ nhận được lỗi "không đủ bộ nhớ để xử lý lệnh này". Tôi có thể sử dụng lệnh khởi động thành công khi bắt đầu thực thi. Vấn đề là sử dụng nó với các tập tin batch. – KevinB

Trả lời

0

Thay goto :exit với goto :EOF. Không xác định nhãn EOF (nó được xác định trước).

+0

Cảm ơn các đề xuất nhưng tôi nghĩ có lẽ tôi không đủ rõ ràng trong câu hỏi của mình. Tôi đang cố gắng tìm ra cách "bắt đầu" lệnh hoạt động và tại sao khi tôi sử dụng nó tập tin thực thi đó là "Bắt đầu" sẽ không kết thúc NO MATTER những gì lệnh cuối cùng. Tôi sẽ nhận được lỗi "không đủ bộ nhớ để xử lý lệnh này". Tôi có thể sử dụng lệnh khởi động thành công khi bắt đầu thực thi. Vấn đề là sử dụng nó với các tập tin batch. – KevinB

15

Tôi đã gặp phải sự cố tương tự và giải pháp cho tôi khá lạ. Dường như việc đặt tiêu đề của cửa sổ thành không có gì ("") gây ra lỗi.

Vì vậy, thay vì

start "" /w "k:\Bundle Support files\record serial.cmd" 

thử

start "Placeholder Name" /w "k:\Bundle Support files\record serial.cmd" 

tôi không thể kiểm tra liệu điều này sẽ làm việc trong trường hợp của bạn (và tôi nghi ngờ nó quan trọng như bạn đang qua lâu rồi) nhưng hy vọng điều này sẽ giúp ai đó gặp bất kỳ lỗi tương tự nào.

+1

Tôi hoàn toàn sửng sốt rằng điều này đã hiệu quả. Thật là một thông điệp báo lỗi màu đỏ khủng khiếp, Windows. –

-1

Đó là những gì lệnh START thực hiện khi bạn khởi chạy cmd. Nếu bạn chạy START cmd, bạn sẽ không mong đợi CMD thoát ngay lập tức - nó vẫn sẵn sàng để sử dụng. Vì vậy, bạn hoặc CALL một tập tin cmd và nó sẽ kết thúc, hoặc bạn bắt đầu một cmd, và nó sẽ không kết thúc - nhưng bạn có thể làm cho nó kết thúc bằng cách sử dụng lệnh EXIT. Vấn đề tràn ngăn xếp cũng được SEIPIA trả lời một cách chính xác - thay vì sử dụng "" tên tập tin bắt đầu "", đặt một cái gì đó giữa các dấu ngoặc kép để hoạt động như tiêu đề - điều đó sẽ ngăn chặn lỗi tràn ngăn xếp.

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