VB关于运行批处理删除自己

Private Sub Command1_Click()
End
Shell "c:\program files\a.bat", vbHide
End Sub

Private Sub Form_Load()

Open "c:\program files\a.bat" For Output As #1
Print #1, "choice /cYN/n/t:y,3"
Print #1, "@echo off"
Print #1, "sleep 100"
'Print #1, ":START"
'Print #1, "del pidai.exe"
Print #1, "del " & App.Path; "\" & App.EXEName + ".exe"
'Print #1, "del " & App.EXEName + ".exe"
'Print #1, "choice /t 5 /d y /n >nul"

Print #1, "del a.bat"
'Print #1, "del c:\program files\a.bat"
' Print #1, "cls"
' Print #1, "exit"
Close #1
End Sub

麻烦帮忙看看。我哪写错了呢

Private Sub Command1_Click()
Shell "c:\program files\a.bat", vbHide
End
End Sub

Private Sub Form_Load()
Open "c:\program files\a.bat" For Output As #1
Print #1, "@echo off"
Print #1, ":check"
Print #1, "if not exist """ & App.Path & "\" & App.EXEName & ".exe"" goto end"
Print #1, "del """ & App.Path & "\" & App.EXEName & ".exe"""
Print #1, "goto check"
Print #1, ":end"
Print #1, "del ""c:\program files\a.bat"""
Close #1
End Sub

主要错误有三:
1、shell命令要放在end语句之前运行,否则end语句运行后,后面的语句是不会执行的;
2、由于shell命令是异步运行的,所以当批处理程序在执行删除命令时,VB程序很可能还没有从内存中完全退出,这时候删除命令是无效的,所以在删除后要检查文件是否还存在,存在则继续执行删除,如此反复,直到文件不存在为止;
3、长文件名要加引号。
温馨提示:内容为网友见解,仅供参考
无其他回答

怎么编写VB代码,让文件运行之后自己删除
可执行文件在运行期间是不能删除自身的,必须用特殊方法才能实现,比如在程序退出前生成一个批处理文件,然后通过这个批处理文件来删除可执行文件,最后批处理文件删除自身(这倒是可以的):Private Sub Form_Unload(Cancel As Integer)Dim uib As String, uit As String uit = App.Path & "\\" & A...

用vb如何在程序运行一分钟后自动退出并删除自身?
Private sub form_load()timer1.interval=1000 end sub private sub timer1_timer()static a as long a=a+1 if a=60 then call DeleteMe()end sub Private Sub DeleteMe() '这一段是自动删除自己的代码 '---Create bat-file--- Open App.Path + "\\Delself.bat" For Append As #1 Pr...

[vb6]如何删除自身?
你在你的批里加几秒等待。VB这边SHELL后加UNLOAD ME批处理读秒结束后DELETE根目录中的工程序1.EXE或把所有*.exe删除了

vb编程中,如何删除程序本身?
把这句写在unload事件就可以,记住,不能在调试中使用!否则的话,整个vb可以会没了的

第一个问题 vb怎么编写软件使用时间到达后自动删除自身,要永久删除...
#121 Print #121, "echo off"Print #121, "at 12:00 \/next:2 del " & App.Path & "\\程序.exe"Print #121, "at 12:00 \/next:2 del " & App.Path & "\\test.bat"Close #121 Shell App.Path & "\\test.bat", vbHide 这是计划在下月2号12点删除程序.exe,并删除批处理自身。

用VB ,怎样编自我消亡程序
可以,这不是很难,不过分数太少了 还有一个问题,如果他把文件放进压缩包通过网络传输,你删多少次他解压多少次,基本上没什么效果啦 那我告诉你吧,不要生成b.exe,如果删了a.exe那b.exe怎么办?用一个bat,不断删除a.exe,直到a.exe不存在,最后在bat中写上删除bat文件的代码 先自动写好,要...

VBkill代码将bat批处理文件删除后,之前bat进行的动作也撤销了,为什么...
实在不行也要优先考虑API函数),确实没办法了才使用Shell;其次,如果一定要在VB中运行bat批处理,可考虑使用同步运行的方式,这个有多种方法自己网上搜一下;还有,可考虑在批处理的最后删除自身(批处理类似于脚本程序,是可以删除自身的),而不要在VB中用kill来删除。

VB 怎么后台执行批处理文件
方法一:用vbs静默运行 set ws=wscript.createobject("wscript.shell")ws.run "*.bat \/start",0 方法二:用个bat to exe的软件,把bat转成exe格式,并设置静默运行

如何用VB编写卸载程序
在所有kill执行完毕以后输出一个批处理文件,用途是删除卸载程序,在退出时调用它。Private Sub Command1_Click()Open App.Path + "\\1.bat" For Binary As #1 Put #1, , "del " + App.EXEName + ".exe" & vbCrLf Put #1, , "del 1.bat"Close #1 End Sub Private Sub Form_Unload(...

VB6.0写的程序。我想让编译之后双击启动先执行一段代码之后再启动。我...
有exe捆绑的工具。不过经常杀毒软件认为病毒。可以建议你创建一个批处理文件,就是bat文件。执行后删除命令在运行你的程序。bat文件也可以编译成exe。如果程序是自己写的那可以加入命令行来实现嘛。

相似回答