Самостоятельно выполнять удаление файлов - PullRequest
0 голосов
/ 22 апреля 2011

Как мне создать самозапускающийся пакетный файл для удаления файлов в определенной папке. Сценарий: у меня есть папка на сервере, куда попадают все отсканированные документы после сканирования. Они хотят, чтобы отсканированные документы были удалены через 1 день. Можно ли создать пакетный файл для этого каждый день?

Ответы [ 2 ]

3 голосов
/ 22 апреля 2011

Вы можете использовать встроенный планировщик задач - это может вызвать пакетный файл или что угодно.

(я предполагаю, что Windows, так как вы упоминаете пакетные файлы).

0 голосов
/ 24 августа 2013

Это довольно известный метод, который был задокументирован в MSDN некоторое время назад.Этот метод работает как в Windows 95, так и в Windows NT.Это работает, потому что командные файлы MS-DOS могут удалять сами.Чтобы проверить эту технику, создайте небольшой пакетный файл, содержащий одну команду:

del %0.bat

Пакетный файл при запуске удаляет себя и выдает ошибку «Пакетный файл не найден».Эта ошибка - просто сообщение, поэтому ее можно смело игнорировать.Само по себе это не слишком полезно, но когда модифицировано для удаления нашего исполняемого файла, оно решает нашу проблему, хотя и довольно сильно.Наш исполняемый файл создаст пакетный файл (называемый C: \ DelUs.bat) со следующим содержимым:

:Repeat 
del "C:\MYDIR\MYPROG.EXE" 
if exist "MYPROG.EXE" goto Repeat 
rmdir "C:\MYDIR" 
del "\DelUS.bat"

Этот пакетный файл многократно пытается удалить указанный файл и будет непрерывно потреблять процессор, пока не добьется успеха,Когда исполняемый файл удален, пакетный файл затем удаляется сам.

Исполняемый файл должен порождаться из пакетного файла с помощью CreateProcess, а затем должен немедленно завершиться.Было бы неплохо дать потоку выполнения командного файла низкий приоритет, чтобы он не занимал много времени выполнения до тех пор, пока не завершится исходный исполняемый файл.

Читайте всю статью на http://www.catch22.net/tuts/self-deleting-executables который содержит полный код этой техники.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...