Tôi có thể đặt lệnh nào ở cuối tệp bó để ngăn tự động đóng bàn điều khiển sau khi thực hiện tệp?
Tôi có thể đặt lệnh nào ở cuối tệp bó để ngăn tự động đóng bàn điều khiển sau khi thực hiện tệp?
Câu trả lời:
Trong các tệp bó Windows / DOS:
pause
Điều này in một "Press any key to continue . . . "
thông điệp tốt đẹp
Hoặc, nếu bạn không muốn "Press any key to continue . . ."
tin nhắn, thay vào đó hãy thực hiện điều này:
pause >nul
Phụ thuộc vào câu hỏi chính xác!
Thông thường pause
thực hiện công việc trong một tập tin .bat .
Nếu bạn muốn cmd.exe không đóng để có thể vẫn gõ, hãy sử dụng cmd /k
lệnh ở cuối tệp.
cmd /k
thay vào đó hãy đặt trước lệnh của bạn. & cmd /k
sẽ không làm việc
Nếu bạn muốn cmd.exe không đóng và có thể tiếp tục nhập, hãy sử dụng
cmd /k
Chỉ cần cảm thấy cần phải làm rõ những gì /k
(từ trang web windows):
/k
: Thực hiện lệnh được chỉ định bởi chuỗi và tiếp tục.
Vì vậy, cmd /k
không có lệnh theo dõi ở cuối tập tin bat sẽ chỉ cmd.exe
mở cửa sổ để sử dụng tiếp.
Mặt khác, pause
ở phần cuối của một tệp bó sẽ chỉ tạm dừng quá trình và chấm dứt cmd.exe
khi nhấn nút đầu tiên
Cách dưới đây để có các lệnh trong một tệp bó sẽ mở các cửa sổ nhắc lệnh mới và các cửa sổ mới sẽ không tự động thoát.
start "title" call abcd.exe param1 param2
start "title" call xyz.exe param1 param2
Nếu bạn đang sử dụng Maven và bạn muốn bỏ qua việc gõ và ngăn không cho giao diện điều khiển đóng lại để xem kết quả bạn cần sử dụng CALL
lệnh trong tập lệnh, bên cạnh chỉ là 'mvn cài đặt sạch'.
Như thế này sẽ đóng giao diện điều khiển
ECHO This is the wrong exemple
mvn clean install
pause
Như thế này giao diện điều khiển sẽ vẫn mở
ECHO This is the right exemple
CALL mvn clean install
pause
Nếu bạn không sử dụng CALL
lệnh thì cả hai mẫu quá khứ sẽ không hoạt động.
call <myCommand>
giải quyết vấn đề này: Lời nhắc của tôi đã dừng đóng sau lần thực hiện đầu tiên
Thêm cmd.exe
dưới dạng một dòng mới bên dưới mã bạn muốn thực thi:
c:\Python27\python D:\code\simple_http_server.py
cmd.exe
python script.py %1 && cmd
cách của tôi là viết một lô thực tế (nói "foo.bat") để hoàn thành công việc; sau đó tạo một "start.bat" khác:
@echo off
cmd /k foo.bat
Tôi thấy điều này cực kỳ hữu ích khi tôi thiết lập các biến môi trường một lần.
cmd /k
(không có bất kỳ lệnh nào) vào cuối foo.bat
tệp và chạy nó. Bạn không cần một start.bat
tập tin riêng biệt .
Gọi cmd
ở cuối tập tin lô.
Khả năng 1: Chỉ cần tạo 2 tệp .bat và ghi vào tệp đầu tiên:
start <filename> // name of 2nd batch file
exit
Batch file 2 là tập tin cuối cùng sẽ không đóng. Vì vậy, bây giờ khi bạn mở đợt nr.1 Nó sẽ bắt đầu lần thứ 2 và chính nó. Khi kết thúc thứ 2, nó sẽ không đóng hoàn toàn (miễn là bạn không đặt lối ra ở cuối)
Khả năng 2: Batch file 1:
call <filename>
cls
echo End of file
pause
<any code you want>
Khi tệp thứ 2 kết thúc thì nó sẽ tiến hành tệp 1 lần nữa và xuất phần còn lại của nó. Với điều đó, bạn thậm chí có thể làm cho xử lý lỗi. Nếu nr.1 gặp sự cố, nó sẽ đi vào nr.2 và hiển thị nó
Hack nhỏ này yêu cầu người dùng nhập khóa và lưu nó vào biến% exitkey% (biến này có thể được gọi là bất cứ thứ gì bạn thích mặc dù).
set /p exitkey= "Press any key to continue..."
NB: khoảng trắng sau dấu '=' là rất quan trọng
Tôi biết tôi đến muộn nhưng cách ưa thích của tôi là:
:programend
pause>nul
GOTO programend
Theo cách này, người dùng không thể thoát bằng cách sử dụng enter.
Có hai cách để làm điều đó tùy thuộc vào trường hợp sử dụng
1) Nếu bạn muốn dấu nhắc cmd của Windows luôn mở để bạn có thể thấy kết quả thực hiện và đóng nó sau đó; sử dụng
pause
2) nếu bạn muốn dấu nhắc cmd của Windows luôn mở và cho phép bạn thực hiện một số lời bạt; sử dụng
cmd
Dễ thôi, thêm cmd vào dòng dơi cuối cùng của bạn, NHƯNG! nếu bạn đặt lại hoặc xóa đường dẫn hệ thống của mình, bạn phải bắt đầu cmd của mình với đường dẫn đầy đủ, như:
%windir%\system32\cmd.exe
Ví dụ: tôi có một tập tin bat để đặt lại jdk về phiên bản cũ như thế này:
PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
%windir%\system32\cmd.exe
Vì tôi đặt lại đường dẫn hệ thống, tôi phải chạy cmd với đường dẫn đầy đủ hoặc hệ thống không thể tìm thấy cmd.exe, nó sẽ không chạy được cmd và chỉ đóng cửa sổ và bạn không thể thấy thông báo lỗi .