2013-06-14 36 views
23

Tôi đang cố viết kịch bản lệnh hàng loạt để tạo thư mục nếu nó chưa tồn tại. Theo dõi các ví dụ trực tuyến, bên dưới là kịch bản của tôi.Làm thế nào để ngăn chặn hàng loạt cửa sổ đóng khi xảy ra lỗi?

Vấn đề là; đầu tiên pause hoạt động, có thể do lỗi cú pháp cửa sổ đóng thậm chí trước khi đạt đến số pause thứ hai, vì vậy tôi không thể biết phần nào của tập lệnh của tôi sai.

Có ai có thể chỉ cho tôi cách ngăn cửa sổ đóng để tôi có thể thấy những gì trên cửa sổ không?

@echo off 

:copy theme images over 
:designer 
echo copying theme images over... 
pause 
if not exist "%K2DIR%\K2 SmartForms Runtime\Styles\Themes\Sharepoint 2013\rich_text" 
(
    md "%K2DIR%\K2 SmartForms Runtime\Styles\Themes\Sharepoint 2013\rich_text333" 
) 

pause 
+7

Tại sao bạn không đặt 'pause' trước' md '? Ngoài ra, không chỉ chạy tập tin .bat bằng cách doubleleclicking nó: mở 'cmd' và gọi dơi của bạn từ đó. Không có cửa sổ để đóng ở đó! – Sebastian

+5

Đối với các lỗi cú pháp - '(' của bạn bị đặt sai chỗ. Nó phải nằm trên cùng dòng với câu lệnh IF của bạn với một khoảng trống trước nó. – dbenham

+0

Cảm ơn bạn đã chỉ ra lỗi :) –

Trả lời

19

Bạn cần chuyển nút/K sang CMD hoặc chỉ cần mở Cửa sổ lệnh và chạy hàng loạt từ dòng lệnh.

+0

Ah !! điểm tốt! Tôi cảm thấy rất ngu ngốc .. –

+0

Ngay cả những người tốt nhất của chúng ta đều quên. Đặc biệt, nếu bạn không sử dụng công nghệ trong một thời gian. – AMissico

1

Tôi đã ghi lại màn hình (dải) khi tôi không thể đọc được thông báo lỗi, và sau đó tôi có thể phát lại nó; Tôi cho rằng điều này chủ yếu hữu ích nếu bạn đã có phần mềm trên máy tính của mình.

+0

điều này làm việc tuyệt vời cho tôi! Đó là một thông điệp thoáng qua và tôi không có quyền kiểm soát lời gọi script - đây là lựa chọn tốt nhất. –

21

Bạn có thể đặt dòng này vào đầu của tập tin batch:

if not defined in_subprocess (cmd /k set in_subprocess=y ^& %0 %*) & exit) 

gì dòng này có tác; lần đầu tiên bạn chạy nó, nó sẽ tự khởi chạy lại trong một tiến trình con không thoát ra sau khi nó chạy xong tệp bó.

+0

Điều này dường như không hoạt động trong Windows 7. Nó sinh ra các quy trình đệ quy đệ quy cho đến khi có lỗi. Bất cứ ai có bất kỳ sửa chữa? – porcoesphino

+1

@porcoesphino Bạn có thể thử 'if not defined in_subprocess (cmd/k set in_subprocess = y^&% 0% *) & exit)' –

+0

Oh wow. Không gian trước khung là vấn đề. Điều đó cũng làm việc trong các phiên bản trước đó? Nếu có, có thể đáng cập nhật câu trả lời của bạn. Cảm ơn. – porcoesphino

0

Bấm start và nhập cmd và nhấn enter, bạn sẽ khởi chạy lời nhắc lệnh. Chỉ cần kéo và thả những gì bạn cần để chạy (kịch bản python của bạn, .exe ...) vào cửa sổ cmd, và nhấn enter. (Nếu bạn cần chạy cmd làm quản trị viên, hãy tìm cmd trong menu bắt đầu, nhấp chuột phải vào nó, chọn run as admin) (Hoạt động trên windows 7)

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