[windows] 如何防止在執行批處理文件後自動關閉控制台。


Answers

取決於確切的問題!

通常, pause會在.bat文件中執行該作業。

如果您希望cmd.exe不能關閉以便能夠繼續輸入,請在文件末尾使用cmd /k命令。

Question

有人可以告訴我,在批處理文件的末尾放置什麼命令來防止文件執行後自動關閉控制台?




這個小黑客要求用戶輸入一個密鑰並將其存儲到變量%exitkey%中(儘管這個變量可以被稱為任何你喜歡的東西)。

set /p exitkey= "Press any key to continue..."

注意:'='之後的空間非常重要




很簡單,將cmd添加到最後一行蝙蝠,但! 如果您重置或清除系統路徑,則必須使用完整路徑啟動cmd,如:

%windir%\system32\cmd.exe

例如,我有一個bat文件將jdk重置為舊版本,如下所示:

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

因為我重置了系統路徑,所以我必須使用完整路徑運行cmd,或者係統找不到cmd.exe,它將無法運行cmd,並且只是關閉窗口,並且看不到錯誤消息。




除了pause

set /p=

可以使用。它會期望用戶輸入,並在按下輸入時釋放流量。

要么

runas /user:# "" >nul 2>&1

這將執行相同的操作,除了用戶輸入中的任何內容都不會顯示,也不會保留在命令歷史記錄中。




以下批處理文件中的命令將打開新的命令提示符窗口,新窗口不會自動退出。

start "title" call abcd.exe param1 param2  
start "title" call xyz.exe param1 param2



在批處理文件的末尾調用cmd




Links