Board logo

标题: 我把Bat轉成Exe後,批次檔無法刪除自身。 [打印本页]

作者: n6333373     时间: 2010-2-5 11:24    标题: 我把Bat轉成Exe後,批次檔無法刪除自身。

各位前輩們,事情是這樣子的:

最近在用批次檔寫安裝檔,
假設我有個批次檔是 setup.bat,是用來控制安裝流程的。
但是最後安裝完之後,我希望把 setup.bat 刪除。

以前我都是在 setup.bat 裡最後一行直接寫上 del /F /Q setup.bat
而安裝完之後該批次檔也的確將自身刪除了。

最近我把 setup.bat 轉檔成 setup.exe ,
而最後一行改為 del /F /Q setup.exe ,
安裝完之後卻無法刪除自身(setup.exe) ,
不知道各位前輩們有什麼好方法可以讓 exe 檔刪除自身?
作者: HAT     时间: 2010-2-5 11:37
setup.exe在执行的时候会吧setup.bat释放到一个临时目录,setup.bat找不到setup.exe在什么地方,所以无法删除。
作者: n6333373     时间: 2010-2-5 11:52


  Quote:
Originally posted by HAT at 2010-2-5 11:37:
setup.exe在执行的时候会吧setup.bat释放到一个临时目录,setup.bat找不到setup.exe在什么地方,所以无法删除。

哎呀 ...... 感謝版主的點解,
那該怎麼辦呢 ... 如果不知道那個臨時目錄的話 ...
作者: HAT     时间: 2010-2-5 13:18
你用的哪个工具把bat转成exe的?
作者: n6333373     时间: 2010-2-5 15:59


  Quote:
Originally posted by HAT at 2010-2-5 13:18:
你用的哪个工具把bat转成exe的?

Bat To Exe Converter

真的是勞煩您了!
作者: winnerwjq     时间: 2010-3-25 17:22
无法删除自身时候提示什么??
del %0
这个可以吗???试试
作者: lovelymorning     时间: 2010-3-25 23:01
转成 exe 之后,是不能直接删除的。。也无法用 %0 来删除的。。。%0 永远都是 bat 本身路径。。。转成 exe 后。执行时,会把 bat 释放出来的。。。

想删除,可以在bat文件的最前面,用一个变量把路径保存起来。。。。

exe 在执行时,%cd% 就是当前exe所在的路径。。。所以,可以用这个来删除exe文件。。。

但是,如果这个exe被改名了,那就没戏了。。删除不了。。


不过,可以在bat的前面,加个判断。。。

最前面,使用 %cd% 变量。。。就是这个exe所在的文件夹,判断这个文件夹下,是否有特定名字的exe文件。如果有,就继续下面的。。。到最后,再来删这文件

如果没有这个特定名字的exe文件,就退出或者提示说,不能改文件名之类的。。不执行下面的操作。。


删除bat自身。。不建议使用 del .bat 这样的形式。。。最好就是 del %0 来删除