Как заставить.BAT файл удалить его сам после завершения? У меня есть простой bat-файл, который завершает процесс. Я хочу, чтобы это.BAT файл удалило себя.
@ECHO OFF
SETLOCAL
SET someOtherProgram=SomeOtherProgram.exe
TASKKILL /IM "%someOtherProgram%"
ECHO "This script will now self-destruct. Please ignore the next error message"
DEL "%~f0"
Обратите внимание, что строка DEL лучше всего будет последней, что вы собираетесь выполнять внутри командного файла, иначе вам не повезет :)
Будет напечатано уродливое сообщение об ошибке, но это неопасно, и таким образом код становится немного менее запутанным. Если вы очень заботитесь об избавлении от сообщения об ошибке, см. ответ dbenham , чтобы избавиться от него.
Вы не упомянули ОС, но если она работает в Windows XP Professional и у вас есть соответствующие разрешения, вы можете настроить пакетный файл для выполнения однократной запланированной задачи Windows, чтобы удалить файл позже. Используйте команду schtasks
, описанную здесь .
В противном случае вы, как правило, не можете удалить исполняемый файл, так как это может привести к разного рода неприятностям. Кроме того, попытка удалить используемый исполняемый файл рассматривается как очень подозрительное поведение любым количеством антивирусных программ, поэтому вполне вероятно, что вы столкнетесь и с ними.