Windowsのcmd端末では、cmdでコマンドスクリプト(.cmd)を呼び出しますが、exit [code]
には/B
が含まれていないため、Windowsターミナルが終了します。Windowsのcmd端末の終了を避けるには、「exit」を実行するコマンドを呼び出しますか?
/B
がなくても、コマンドを実行するとWindows cmd端末が終了するのを防ぐにはexit
?
Windowsのcmd端末では、cmdでコマンドスクリプト(.cmd)を呼び出しますが、exit [code]
には/B
が含まれていないため、Windowsターミナルが終了します。Windowsのcmd端末の終了を避けるには、「exit」を実行するコマンドを呼び出しますか?
/B
がなくても、コマンドを実行するとWindows cmd端末が終了するのを防ぐにはexit
?
scriptname.cmd
をcmd /c
と呼び出すことができます。そうすれば、祖先のコンソールプロセスではなく、cmd /c
の呼び出しが終了します。exit
Test1.bat:
@echo off & setlocal
echo Exiting.
exit 0
Test2.bat:Test2.batの
@echo off & setlocal
echo Invoking Test1.bat
cmd /c Test1.bat
echo Still running!
出力:
Test1.batを呼び出す
終了します。
まだ実行中です!
...コンソールウィンドウは開いたままです。
ありがとう、 'cmd/c'はこれをうまく処理したので、' call'を使用してスキップします。 – EquipDev
Test1.batが保持したい環境変数を設定する場合、スクリプトが現在のシェル内で実行されない限り、設定されません。これは 'CALL'が可能にするものです。あなたはその機能を失います。 .batスクリプトは 'EXIT/B'で修正する必要があります。 – lit