我正在尝试使用批处理文件制作自定义“卸载程序脚本”,它将删除指定的文件,然后在完成所有操作后自行删除。我的目标是制作一个也可以转换为 EXE 格式的脚本。这是我的根据脚本:
rmdir "%DIRECTORYPATH%" /s /q
del "%FILEPATH%" /s /q
(goto) 2>nul & del "%~f0"
使用此脚本,我可以让批处理文件自行删除,但在使用 F2KO Software 的Bat 到 Exe 转换器。我在编译输出之前修改了设置,但似乎没有什么效果。将我的脚本转换为这种格式的目的是为了设置自定义图标和版本信息。
我甚至在脚本中声明了设置路径,转换了它,将 exe 包装在 SFX 存档中,并将其设置为从 %TEMP% 提取并运行,但没有成功。SFX 模块绑定了 EXE,不允许自我删除。我尝试使用这方法(最初来自@Samy Bencherif)来绕过在后台运行的 SFX 模块,但这也不起作用:
rmdir "%DIRECTORYPATH%" /s /q
del "%FILEPATH%" /s /q
process.start("cmd /c ping localhost -n 3 > nul & del "%TARGETPATH%")
taskkill /%TARGET%.exe
尝试的清单还在继续。我已经尝试了我所知道的所有方法,并且已经搜索了一段时间,但毫无成果。任何帮助都是大大赞赏。
答案1
这是我的解决方案...让可执行文件创建一个删除它的批处理文件。
echo %CD:~0,2% >> delme.bat
echo cd %~dp0 >> delme.bat
echo del /f MYAPP.exe >> delme.bat
echo echo y^| del /f "%FILEPATH%" >> delme.bat
echo exit >> delme.bat
start %~dp0\delme.bat
exit
将 MYAPP.exe 替换为您的 exe。批处理文件也将删除自身...
答案2
瞄准文件位置然后>
删除应用程序