2009-08-05 113 views
49

我正在尋找一種抑制「終止批處理作業?(是/否)」邀請的機制,只要我按CTRL-C如何禁止cmd.exe中的「終止批處理作業」

批處理文件:jsshell.bat:程序從一個批處理文件啓動

> jsshell.bat 

這使我可以退出一個shell:

@echo off 
java -jar build-scripts\contrib\rhino1.7R1.jar 

,然後通過啓動它CMD殼通過CTRL-C退出後給我的令人討厭的消息

+0

FWIW,這個附加應用程序通過一個設置解決了問題,並帶來更多的好東西。 https://code.google.com/p/clink/自從關閉後,無法添加爲答案。 – Macke 2013-04-03 06:47:46

+0

參見http://superuser.com/questions/35698/how-to-supress-terminate-batch-job-y-n-confirmation – 2013-09-10 09:43:33

回答

7

不要忘了考慮,避免批處理腳本解決該問題。

  • Doskey macros可以代替上面引用的單行批處理腳本。 (加載它們在你的Autorun腳本。)
  • Cscript.exe提供各種現代化的Windows計算機上,可以通過命令行
  • 運行JavaScript和VBScript程序如果您添加的文件擴展名您最喜愛的腳本語言(Perl,Python和Ruby等)添加到您的PATHEXT環境變量中,並將腳本添加到您的路徑中,您可以直接執行它們而無需批處理腳本。
+1

所有的好點,但我的目標是在SVN檢出東西后開箱即用,所以添加東西到PATHEXT或自動運行不起作用 – cellcortex 2009-11-18 22:30:27

+0

你的用戶必須安裝Java,對嗎?這僅僅是一個步驟 – 2009-11-23 17:14:23

+1

@cellcortex:還要注意VBScript已經在Pathext中 – Joey 2011-03-16 21:02:00

14

This site給出瞭如何修補cmd.exe不顯示消息的說明。

+17

聖潔的廢話,這是一些硬核心修復。當然,必須有一個不那麼突兀的方式? – 2009-08-05 17:29:49

+3

你最後一次獲得NOOP的時間是? 好的,如果您希望其他人使用,不是一個很好的解決方案。 – WireGuy 2009-08-05 18:13:08

+19

謝謝,但補丁cmd.exe是我寧願不喜歡做的事情。 – cellcortex 2009-08-16 14:23:11

8

是的,比修補cmd.exe更優雅。只需將START放在命令前面即可。爲了您的例子中,行就應該是這樣的:「開始Java的罐子建設的腳本\的contrib \ rhino1.7R1.jar」

+6

這似乎打開一個新的控制檯窗口,並在其中運行。 – cellcortex 2009-10-12 21:53:12

+1

使用start/B不會得到一個新窗口 – 2014-04-14 08:41:17

+1

@JonnyLeeds你不會得到一個新的窗口,但隨後會出現另一個問題 - 當你在原來的shell窗口中鍵入'exit'時,它不會關。 – egor83 2014-06-25 05:49:02

2

下修改抑制「終止批處理作業(Y/N)?」 新控制檯窗口:

start cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar 
+3

在我的機器上打開一個新的控制檯窗口。 (我在win7上,但我懷疑這是否有所作爲。) – 2009-10-16 21:28:31

+0

爲我打開2個新的控制檯窗口 – cellcortex 2009-10-20 21:12:12

+0

嗯,很奇怪。這個例子對我來說就是在託管模式瀏覽器中啓動GWT: start cmd/c%JAVA_HOME%/ bin/java%JAVA_OPTS%-classpath%CLASSPATH%com.google.gwt.dev.GWTShell%GWT_OPTS% 當你雙擊BAT文件時,它會啓動一個控制檯窗口,但是 - 正如我上面提到的 - 禁止Terminate批處理作業? (Y/N)「,並禁止啓動一個額外的控制檯窗口。也許這個」rhino「是一個控制檯應用程序,因此必須在控制檯上運行? – Elmo 2009-10-21 09:01:05

7

FWIW,管道'N'作爲一個命令的輸入工作我的一些批處理文件(但我真的想要新的窗口)。也許它也適用於你。

(echo. N)| cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar 
+0

請記住這可能會導致問題與拉與英語不同的語言。不錯的解決方法,但。 – 2015-12-12 17:45:14

+0

這個作品至少在Windows 7上工作得很好 – 2016-09-17 16:05:54

+0

WOW這個工程在我的Win10機器上運行,語言環境爲FR,智能且用戶友好,因爲它被記憶在歷史隊列中作爲原始命令......與修補cmd.exe相比。 – dmidz 2017-02-07 22:37:01

2
@start cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar 
@exit 

這將使只有一個窗口

+0

它將打開一個新窗口並關閉當前窗口。稍有不同,特別是因爲新窗口沒有任何尺寸設置。另外,你可能意思是'/ k',因爲'/ c'會在程序退出時關閉第二個窗口,最後沒有窗口。 – jpmc26 2013-07-20 00:07:00

+0

如何用此命令添加WAIT? 「啓動/等待CMD/K」不起作用 – 2016-10-19 10:39:13

1

試試這個。它確實打開了一個新的控制檯,但它在打開時鎖定了另一個控制檯。

@echo off 
start /WAIT java -jar build-scripts\contrib\rhino1.7R1.jar 
20

在這個site,我終於找到了一個有效的解決方案:

script.cmd < nul 

爲了不因爲我已在上面的線相同的文件夾叫script2.cmd第二個腳本,每次輸入了這一點。你可能想要改變名字。適用於我,但只在XP上進行測試。