.bat
プログラムを起動するスクリプトがありますjava
。プログラムは、 が置かjava
れているフォルダーを削除します.bat
。java
私はプログラムに触れる方法がありません。私はファイルを変更することしかできません.bat
。
問題は、.bat
ファイルが削除されると、終了せずにすぐに実行を停止することです。java
ただし、プログラムの終了後に実行するクリーンアップ タスクがいくつかあります。
ファイルを別の場所にコピーして、.bat
削除されない場所で起動しようとしました。残念ながら、元のファイルを.bat
削除すると、まだ実行中のため、同じクラッシュが発生し、終了しません。
以下に 2 つのサンプル ファイルを示します (この例では、ファイルが にあると仮定しますD:\tmp
)。
削除.bat
echo "delete start"
pause
del launch.bat
pause
echo "delete end"
launch.bat
echo "launch start"
setlocal enabledelayedexpansion enableextensions
if "%CD%"=="C:\tmp" (
echo "in temp"
d:
cd \tmp
delete.bat
)
if "%CD%" NEQ "C:\tmp" (
echo "not in temp"
mkdir C:\tmp
copy launch.bat C:\tmp\launch.bat
echo "launch copied"
C:
cd \tmp
cmd /c launch.bat
)
echo "launch end"
launch.bat
コピーの実行がlaunch.bat
最初の実行から分離されている場合、起動は機能します。
.bat
実行中に削除されても実行を終了させる方法を知っている人はいますか?