windows 取消以系統管理員身分執行win10 - 如何防止在執行批處理文件後自動關閉控制台。





以系統管理員身分執行不見 8我的電腦桌面 (12)


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

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

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

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




除了pause

set /p=

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

要么

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

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




可能性1:只需創建2個.bat文件並寫入第一個文件:

start <filename> // name of 2nd batch file
exit

批處理文件2是最後不會關閉的文件。 所以現在當你打開批次nr.1它將開始2nd和cloe本身。 當第二次完成時它不會完全關閉(只要你不會在最後退出)

可能性2:批處理文件1:

call <filename>
cls
echo End of file
pause
<any code you want>

當第二個文件結束時,它將再次進入文件1並輸出剩餘的文件。 有了這個,你甚至可以製作錯誤處理程序。 如果nr.1崩潰,則進入nr.2並顯示它




如果您希望cmd.exe不關閉,並且能夠繼續鍵入,請使用cmd /k

只是覺得有必要澄清什麼/k (從Windows網站):

/k :執行由字符串指定的命令並繼續。

所以cmd /k在bat文件的末尾沒有跟進命令,只會保持cmd.exe窗口打開供進一步使用。

另一方面,在批處理文件結束時暫停將暫停該進程並在第一次按下按鈕時終止cmd.exe




cmd.exe添加為您要執行的代碼下面的新行:

c:\Python27\python D:\code\simple_http_server.py

cmd.exe



在Windows / DOS批處理文件中:

pause

這會打印出一個不錯的"Press any key to continue . . . "消息

或者,如果您不希望"Press any key to continue . . ." ...... "Press any key to continue . . ." 消息,請改為:

pause >nul



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




很簡單,將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,並且只是關閉窗口,並且看不到錯誤消息。




我知道我遲到了,但我最喜歡的方式是:

:programend
pause>nul
GOTO programend

用這種方式,用戶不能使用輸入退出。




我的方法是寫一個實際的批次(說“foo.bat”)來完成這項工作; 然後創建另一個“start.bat”:

@echo off
cmd /k foo.bat

我發現這在設置一次性環境變量時非常有用。




取決於確切的問題!

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

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




這是我如何做到的。

@fake-command /u %1 /p %2

以下是命令行的外觀:

test.cmd admin [email protected] > test-log.txt

%1適用於第一個參數%2(這裡是棘手的部分)適用於第二個參數。 用這種方法最多可以傳遞9個參數。







windows command-line batch-file