ファイルの実行後にコンソールが自動的に閉じないようにするために、バッチファイルの最後にどんなコマンドを追加できますか?
Windows/DOSバッチファイルの場合:
pause
これはNice "Press any key to continue . . . "
メッセージを出力します
"Press any key to continue . . ."
メッセージが欲しくないなら、代わりにこれをしてください:
pause >nul
正確な質問によります!
通常pause
は .bat ファイル内で仕事をします。
cmd.exe を閉じないようにして、入力を続けることができるようにするには、ファイルの末尾にcmd /k
コマンドを使用します。
Cmd.exeを閉じずに入力を続けたい場合は、
cmd /k
を使用します。
/k
が何をするのかを明確にする必要性を感じました(WindowsのWebサイトから):
/k
:stringで指定されたコマンドを実行して続行します。
そのため、batファイルの最後にフォローアップコマンドを付けずにcmd /k
を実行すると、cmd.exe
ウィンドウは開いたままになります。
一方、バッチファイルの最後にあるpause
は単にプロセスを一時停止し、最初のボタンを押すとcmd.exe
を終了します。
以下の方法でバッチファイルにコマンドを入力すると、新しいコマンドプロンプトウィンドウが開き、新しいウィンドウは自動的には終了しません。
start "title" call abcd.exe param1 param2
start "title" call xyz.exe param1 param2
実行したいコードの下に新しい行としてcmd.exe
を追加します。
c:\Python27\python D:\code\simple_http_server.py
cmd.exe
私のやり方は、実際のバッチを書いて( "foo.bat"と言って)仕事を終わらせることです。それから、別の "start.bat"を作成してください。
@echo off
cmd /k foo.bat
私はこれが1回限りの環境変数を設定するとき非常に有用であると思います。
バッチファイルの最後でcmd
を呼び出します。
pause
以外に。
set /p=
使用することができます。ユーザーの入力を期待し、enterが押されるとフローを解放します。
または
runas /user:# "" >nul 2>&1
ユーザー入力からの何も表示されず、コマンド履歴にも残りません。
Maven を使用していて、入力をスキップして結果が表示されないようにコンソールを閉じたくない場合は、 'mvn clean install'だけでなく、スクリプトでCALL
コマンドを使用する必要があります。
このようにコンソールを閉じます
ECHO This is the wrong exemple
mvn clean install
pause
このようにコンソール は開いたままになります
ECHO This is the right exemple
CALL mvn clean install
pause
CALL
コマンドを使用しない場合は、どちらの例も機能しません。
可能性1:2つの.batファイルを作成して最初のファイルに書き込むだけです。
start <filename> // name of 2nd batch file
exit
バッチファイル2は最後に閉じないファイルです。だから今あなたがバッチ番号1を開くと、それは2番目を開始し、それ自体を閉じるでしょう。 2回目が終わったとき、それは完全に閉じないでしょう(あなたが終わりに出口を置かない限り)
可能性2:バッチファイル1:
call <filename>
cls
echo End of file
pause
<any code you want>
2番目のファイルが終了すると、再びファイル1に進み、残りを出力します。それを使えば、エラーハンドラを作ることさえできます。 nr.1がクラッシュするとnr.2に入りそれを表示します
この小さなハックはユーザにキーを入力してそれを変数%exitkey%に保存するように要求します(この変数はあなたが好きな名前で呼び出すことができます)。
set /p exitkey= "Press any key to continue..."
NB: '='の後のスペースは非常に重要です
pause
または
echo text to display
pause>nul
ここで答えに問題があったので、私はこれを思いついた、それは私のために働く(TM):
cmd /c node_modules\.bin\tsc
cmd /c node rollup_build.js
pause
私は遅れていることを知っていますが、私の望ましい方法は次のとおりです。
:programend
pause>nul
GOTO programend
このようにして、ユーザーはenterを使って終了することはできません。
簡単ですが、最後の行にcmdを追加してください。システムパスをリセットまたはクリアする場合は、次のようにcmdをフルパスで起動する必要があります。
%windir%\system32\cmd.exe
たとえば、次のようにjdkを古いバージョンにリセットするためのbatファイルがあります。
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を実行できず、ウィンドウを閉じるだけで、エラーメッセージは表示されません。 。