Как заставить.BAT файл удалить его сам после завершения?

Как заставить.BAT файл удалить его сам после завершения? У меня есть простой bat-файл, который завершает процесс. Я хочу, чтобы это.BAT файл удалило себя.

28
задан Brian Tompsett - 汤莱恩 6 July 2015 в 20:04
поделиться

2 ответа

@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 , чтобы избавиться от него.

34
ответ дан 28 November 2019 в 02:32
поделиться

Вы не упомянули ОС, но если она работает в Windows XP Professional и у вас есть соответствующие разрешения, вы можете настроить пакетный файл для выполнения однократной запланированной задачи Windows, чтобы удалить файл позже. Используйте команду schtasks , описанную здесь .

В противном случае вы, как правило, не можете удалить исполняемый файл, так как это может привести к разного рода неприятностям. Кроме того, попытка удалить используемый исполняемый файл рассматривается как очень подозрительное поведение любым количеством антивирусных программ, поэтому вполне вероятно, что вы столкнетесь и с ними.

4
ответ дан 28 November 2019 в 02:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: