批处理文件是一个扩展名为bat的文本文件,里面集成了多条用户想一次运行的命令,当用户键入该批处理文件的文件名后,系统就会逐条解释并执行文件中包含的部分或者全部命令。我们可以使用任何文本编辑器来编写他,也可以通过程序生成一个文本文件,并自动向其中添加命令。先简单的生成一个bat文件,让我们看看删除功能是如何实现的。新建一个文本文件,在里面填入
del test.txt
del %0
将文件保存为Test.bat,并且在同一目录下建立一个Test.txt文件。运行刚刚生成的Test.bat文件,你会发现Test.txt和Test.bat文件同时消失了。文件中的第一行使用了DOS命令del删除test.txt文本文件,第二行中的%0代表批处理文件本身。现在我给大家演示如何用程序动态生成批处理文件实现程序卸载功能。
在Delphi中新建一个应用程序,并在窗口里放上一个按钮,双击按钮生成它的OnClick事件,填入如下代码:
AssignFile(BatchFile, ‘UnInstall.bat’);
Rewrite(BatchFile);
Writeln(BatchFile, 'del "Project1.exe"');
Writeln(BatchFile, 'del %0');
CloseFile(BatchFile);
它的功能是生成文本格式的批处理文件,接下来我们需要运行生成的UnInstall.bat程序,所以在后面继续添加代码:
ShellExecute(Application.Handle,'nil','UnInstall.bat',nil,nil,SW_HIDE);
通过这个函数可以调用生成的批处理文件;另外使用ShellExecute函数时不要忘记在uses里加上ShellAPI文件。编译该代码,运行,点击按钮,随后Project1.exe和UnInstall.bat程序都被删除。至此,一个简单的卸载程序完成了。
为了严谨,上面的代码还可以继续完善,比如在批处理文件中使用if exist [path&filename] goto语句测试要删除的文件是否存在,文件名使用绝对路径等等,这可以根据需要自行选择。