私は、Javaアプリケーション用の小さなシャットダウンスクリプトを作成しています。私は、PIDを取得し、次の操作を行いますしよう:taskkill:異なる動作コンソール対スクリプト
taskkill /t /pid !pid!
私は、コンソールからのコマンドを実行している場合は、すべてが正常に動作します(手で入力します)。私は、シャットダウンルーチンがJavaコンソールで実行されているのを確認し、その後、Javaコンソールは消えてしまいます。私はときどきウィンドウが "プロセスが反応しません。今すぐ殺すか待つ"ダイアログを数秒後に見ますが、ダイアログはJavaプログラムが停止すると自動的に閉じられます。
私が同じコマンドでバットファイルを実行すると、すぐに「プロセスが応答していません...」というダイアログが表示されます。コンソール出力が表示されます:「プロセスは正常に終了しましたが、Javaコンソールはまだ開いています。それはシャットダウンシーケンスを開始しませんでした。
編集:遅れ展開が無効になっているとのみ、レジストリEYまたはcmd /V:on
を有効にすることができるように、コマンドライン!pid!
で完全なバッチスクリプト
@echo off
setlocal enabledelayedexpansion
if exist .\lock (
set /p pid=< lock
taskkill /t /pid !pid!
)
後にあなたがそれを私たちにバッチスクリプトを示さなければならないエコーを追加する必要があります。 – adarshr
が質問に追加されました。 – Nicolas