中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-28 08:25
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 我把Bat轉成Exe後,批次檔無法刪除自身。 查看 1,100 回复 6
楼 主 我把Bat轉成Exe後,批次檔無法刪除自身。 发表于 2010-02-05 11:24 ·  中国 台湾 中华电信(HiNet)数据中心
新手上路
积分 10
发帖 5
注册 2010-02-04 17:20
16年会员
UID 160108
性别 男
状态 离线
各位前輩們,事情是這樣子的:

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

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

最近我把 setup.bat 轉檔成 setup.exe ,
而最後一行改為 del /F /Q setup.exe ,
安裝完之後卻無法刪除自身(setup.exe) ,
不知道各位前輩們有什麼好方法可以讓 exe 檔刪除自身?
2 发表于 2010-02-05 11:37 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
setup.exe在执行的时候会吧setup.bat释放到一个临时目录,setup.bat找不到setup.exe在什么地方,所以无法删除。
3 发表于 2010-02-05 11:52 ·  中国 台湾 中华电信(HiNet)数据中心
新手上路
积分 10
发帖 5
注册 2010-02-04 17:20
16年会员
UID 160108
性别 男
状态 离线
Originally posted by HAT at 2010-2-5 11:37:
setup.exe在执行的时候会吧setup.bat释放到一个临时目录,setup.bat找不到setup.exe在什么地方,所以无法删除。


哎呀 ...... 感謝版主的點解,
那該怎麼辦呢 ... 如果不知道那個臨時目錄的話 ...
4 发表于 2010-02-05 13:18 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
你用的哪个工具把bat转成exe的?
5 发表于 2010-02-05 15:59 ·  中国 台湾 中华电信(HiNet)数据中心
新手上路
积分 10
发帖 5
注册 2010-02-04 17:20
16年会员
UID 160108
性别 男
状态 离线
Originally posted by HAT at 2010-2-5 13:18:
你用的哪个工具把bat转成exe的?



Bat To Exe Converter

真的是勞煩您了!
6 发表于 2010-03-25 17:22 ·  中国 广东 珠海 联通
新手上路
积分 2
发帖 2
注册 2010-03-16 16:53
16年会员
UID 162329
性别 男
状态 离线
无法删除自身时候提示什么??
del %0
这个可以吗???试试
7 发表于 2010-03-25 23:01 ·  中国 广东 揭阳 电信
初级用户
★★
积分 131
发帖 72
注册 2008-02-24 14:31
18年会员
UID 111317
性别 男
状态 离线
转成 exe 之后,是不能直接删除的。。也无法用 %0 来删除的。。。%0 永远都是 bat 本身路径。。。转成 exe 后。执行时,会把 bat 释放出来的。。。

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

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

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


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

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

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


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