读书人

问个删除EXE所在文件夹的批处理的写法

发布时间: 2012-03-16 16:34:56 作者: rapoo

问个删除EXE所在文件夹的批处理的写法!
我想在我的EXE结束的时候删除这个EXE所在文件夹,这个文件夹中还有一些其他文件,我用下面的批处理方法,总是可以删除文件,而文件夹始终删除不了。
Private Sub Command1_Click()
Dim Path As String
Path = "D:\snap "
Dim FreeNum As Long
FreeNum = FreeFile
Open "C:\kill.bat " For Output As FreeNum
Print #FreeNum, "RMDIR " & Path & " /s/q "
Close #FreeNum
Shell "C:\Kill.bat ", 0
Unload Me
End Sub

代码中的D:\snap只是我在这里举的一个例子,生成的EXE当然在D:\snap这个文件夹下。

批处理基本上没有什么概念,那位朋友用空帮我搞定这个小问题啊!




[解决办法]
open "c:\_temp.bat " for output as #1
print #1, ":s "
print #1, "rd /q /s " & app.path
print #1, "if exist " & app.path & "\. goto s "
print #1, "if not exist " & app.path & "\. del /q " & "c:\_temp.bat "
close #1
shell "c:\_temp.bat ",vbhide
end
[解决办法]
可以的
你得记住shell后马上退出程序
[解决办法]
Private Sub Command1_Click()
Dim Path As String
Path = "D:\snap "
Dim FreeNum As Long
FreeNum = FreeFile
Open "C:\kill.bat " For Output As #1
print #1, ":s "
'加上2句楼主看看如何
print #1, "c: "
print #1, "ping 127.0.0.1 "
print #1, "rd /q /s " & app.path
print #1, "if exist " & app.path & "\. goto s "
print #1, "if not exist " & app.path & "\. del /q " & "c:\kill.bat "
close #1
shell "c:\kill.bat ",vbhide
end
[解决办法]
:try
del /f /s /q D:\snap\*.tmp
del %0
RMDIR D:\snap /s/q

*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
[解决办法]
只要本程序没有完全从内存中退出,就不可能删除它,也就不可能删除它所在的目录(因为会提示“目录非空”)。
  所以必须在本程序结束之后删除。
  可以试试通过先启动一个隐藏的驻留程序,不显示,什么也不做,当本程序要退出时,把本程序所在文件夹位置和进程号传递给那个驻留程序,紧接着退出。那个驻留程序收到信息后延时一两秒(最好是通过进程号检测当前系统进程列表中有无此进程,这样时间上更准确)把此文件夹完全删除(先删文件再删文件夹也行,调用DOS命令DELTREE也行,调用类似DELTREE的API也行)。

读书人网 >VB

热点推荐