我用第三方程序将我的批处理文件编译为exe。但是当我编译它时,我的delete it self
行无效。我该如何解决?
start /b "" cmd /c del "%~f0"&exit /b
答案 0 :(得分:0)
@echo off
set dt=%date%
echo %dt% - is todays date
echo MsgBox "%dt% - is todays date">out.vbs
out.vbs
del out.vbs
goto quit
:quit
(goto) 2>nul & del "%~f0"
exit
del"%~f0" 命令只会删除批次本身,而不会删除已编译的(*。exe)可执行文件。
编译后的可执行文件只是一个容器,它将实际批处理提取到临时位置然后运行它
答案 1 :(得分:0)
尝试向您的批处理添加一个临时的辅助流程,该流程将在ping提供的短暂延迟后删除您的主要流程:
echo ping localhost > %TEMP%\secondary.cmd
echo del FullPathTo\CompiledBatch.exe >> %TEMP%\secondary.cmd
echo exit >> %TEMP%\secondary.cmd
start /b "" %TEMP%\secondary.cmd
exit