バッチファイルから開始されたプログラムでCTRL-Cを押すたびに表示される「バッチジョブを終了しますか?(Y/N)」招待を抑制するメカニズムを探しています。
バッチファイル:jsshell.bat:
@echo off
Java -jar build-scripts\contrib\rhino1.7R1.jar
そして、cmdシェルで次のようにして起動します:
> jsshell.bat
cTRL-Cで終了できるシェルが表示され、終了後に不快なメッセージが表示されます
バッチスクリプトを回避して問題を回避することを忘れないでください。
これで site で、ようやく効果的な解決策が見つかりました。
script.cmd < nul
上記の行と同じフォルダーにscript2.cmd
という2番目のスクリプトを作成するたびにこれを入力する必要がないようにします。名前を逆にすることもできます。私のために動作しますが、これまでのところXPのみでテストされています。
この動作はcmd.exeのソースコードに実装されており、cmd.exeを変更せずにオフにすることはできません。ただし、cmd.exeを変更してメッセージを表示しないを実行できます。
はい、cmd.exeをパッチするよりもエレガントな方法があります。コマンドの前にSTARTを置くだけです。たとえば、行は次のようになります。「START Java -jar build-scripts\contrib\rhino1.7R1.jar」
FWIW、コマンドの入力として 'N'をパイピングすると、いくつかのバッチファイルでうまくいきました(しかし、実際には新しいウィンドウが必要でした)。たぶんそれもあなたのために働くでしょう。
(echo. N)| cmd /c Java -jar build-scripts\contrib\rhino1.7R1.jar
@start cmd /c Java -jar build-scripts\contrib\rhino1.7R1.jar
@exit
これにより、ウィンドウが1つだけになります
以下の変更により、「バッチジョブを終了しますか?(Y/N)」および新しいコンソールウィンドウが抑制されます。
start cmd /c Java -jar build-scripts\contrib\rhino1.7R1.jar
これを試して。新しいコンソールを開きますが、開いている間はもう一方をロックします。
@echo off
start /WAIT Java -jar build-scripts\contrib\rhino1.7R1.jar