我有一个.bat
启动java
程序的脚本。该java
程序删除所在的文件夹.bat
。我没有办法接触java
程序。我只能修改.bat
文件。
问题是.bat
文件一旦被删除,就会立即停止执行而没有完成。java
但是程序退出后还有一些清理工作要做。
我试图将.bat
文件复制到其他地方并在不会被删除的位置启动它。唉,一旦原件.bat
被删除,因为它仍在执行中,同样的崩溃发生了,它没有完成。
这是两个示例文件(出于示例的目的,我们假设它们位于D:\tmp
):
删除.bat
echo "delete start"
pause
del launch.bat
pause
echo "delete end"
启动.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
结束它的执行,即使它在执行时被删除?