2011-04-22 67 views
0

如何创建一个自动执行的批处理文件来删除特定文件夹中的文件。 情景:我在服务器上有一个文件夹,扫描完所有扫描的文档后,文件夹会转到该文件夹​​。他们希望在1天后删除扫描的文档。可以创建一个批处理文件来每天这样做吗?自动执行删除文件

回答

3

您可以使用内置的task scheduler - 这可以调用批处理文件,或几乎任何东西。

(我假设Windows,因为你提到批处理文件)。

+0

是的,对不起,这是windows。 – Daniel 2011-04-22 19:59:01

0

这是一个相当知名的方法,并在前一段时间记录在MSDN中。此技术适用于Windows 95和Windows NT。它的工作原理是因为MS-DOS批处理文件能够自己删除。为了测试这种技术,创建一个包含单个命令一个小的批处理文件:

del %0.bat 

的批处理文件,运行时,删除本身并发出错误“的批处理文件无法找到”。这个错误只是一个简单的信息,所以可以安全地忽略它。就其本身而言,这并不是很有用,但是当修改为删除我们的可执行文件时,它解决了我们的问题,尽管它非常有力。具有以下内容:我们的可执行文件将创建一个批处理文件(\ DelUs.bat称为C):

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

此批处理文件反复尝试删除指定的文件,并且将连续运行消耗CPU,直到成功为止。当可执行文件被删除后,批处理文件将自行删除。

可执行文件需要使用CreateProcess产生批处理文件,然后立即退出。将批处理文件的执行线程设置为低优先级是一个好主意,以便在原始可执行文件终止之前不会获得太多的执行时间。

请阅读全文http://www.catch22.net/tuts/self-deleting-executables,其中包含此技术的完整代码。