![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 10:17 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]如何让自解压文件删除自身 |
| 可打印版本 1,980 / 10 |
| 第1楼 tclgb | 发表于 2007-07-07 21:43 |
| 初级用户 发帖 26 积分 76 | |
|
[已解决]如何让自解压文件删除自身 目的:自解压后自动删除1.exe 过程:我建了一个自解压的文件(如1.exe),里面仅有一个1.bat,自解压目录在%systemroot% 我想在解压后自动删除1.exe,所以加入了del /q/f 1.exe 结果,找不到1.exe的路径了 尝试一:把自解压目录设为.\也就是当前目录,这样可以自动删除1.exe,但会将有一定的显示延时,这种情况暂且不论; 尝试二:建一个1.bat(内容为:@echo %cd% > c:\cpath.txt),设为“解压前运行”, 再建一个2.bat @for /f "tokens=*" %%i in (c:\cpath.txt) do set cpath=%%i @del /q /f "%cpath%\1.exe" 结果"%cpath%读出来的是%systemroot%所在路径,失败了,呵呵 尝试三:建一个1.bat和2.bat,将2.bat建一个自解压文件2.exe,解压目录设 为%systemroot%;将1.bat 和2.exe一起再建一个自解压文件1.exe, 解压目录设为当前目录。原来的想法是:利用1.bat将解压出来的当前 路径并将2.exe复制到%systemroot%下,再运行2.exe删除产生的文 件。只是删除1.exe的时候老是会出现“拒绝访问。”,始终迈不过这个 坎。还是想请大家帮忙给点意见,谢谢。 解决方案:方法如"尝试三",两个文件的内容如下: 1.bat 2.bat :) 代码还是有点乱,希望大家不要介意。也谢谢9楼兄弟的意见。 此代码在xp+sp2下测试通过。 [ Last edited by tclgb on 2007-7-10 at 10:36 PM ] |
|
| 第2楼 lianjiang2004 | 发表于 2007-07-07 21:50 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
好像winrar有个选项就是删除自身压缩文件的。
|
|
| 第3楼 tclgb | 发表于 2007-07-07 22:00 |
| 初级用户 发帖 26 积分 76 | |
|
谢谢lianjiang2004,能不能具体一点呢?
|
|
| 第4楼 haiou327 | 发表于 2007-07-08 01:30 |
| 高级用户 发帖 348 积分 713 | |
|
是要删除自身文件
[ Last edited by haiou327 on 2007-7-8 at 01:32 AM ] 附件 1exe.JPG (38.64 KiB) |
|
| 第5楼 haiou327 | 发表于 2007-07-08 01:31 |
| 高级用户 发帖 348 积分 713 | |
|
BAT后面加上DEL 1.EXE 同时也要加上DEL %0,
用QBFC的魅影模式. [ Last edited by haiou327 on 2007-7-8 at 01:36 AM ] |
|
| 第6楼 tclgb | 发表于 2007-07-08 02:58 |
| 初级用户 发帖 26 积分 76 | |
|
re
Originally posted by haiou327 at 2007-7-8 01:31: 加上del %0 是删除bat自身,还是无法删除自解压文件,呵呵 谢谢 |
|
| 第7楼 tclgb | 发表于 2007-07-09 00:23 |
| 初级用户 发帖 26 积分 76 | |
|
还是希望兄弟们给点建议啊,谢谢谢谢谢谢
|
|
| 第8楼 haiou327 | 发表于 2007-07-09 01:27 |
| 高级用户 发帖 348 积分 713 | |
|
在批处理最后加上DEL/q 自解压文件路径加文件名.
|
|
| 第9楼 flyinspace | 发表于 2007-07-10 12:09 |
| 银牌会员 发帖 517 积分 1,206 | |
|
提示一下:
要删除一个可执行文件, 这个文件必须是未在windows系统中运行的(正在执行的无法删除) 利用延时指令+写代码的形式可以搞定这个问题. |
|
| 第10楼 tclgb | 发表于 2007-07-10 22:38 |
| 初级用户 发帖 26 积分 76 | |
|
Re:flyinspace 经测试用延时并不能起到应该有的效果,不知道是否为本机原因
只好用taskkill了 |
|
| 第11楼 luowei14 | 发表于 2007-07-13 12:08 |
| 初级用户 发帖 98 积分 193 | |
|
10的朋友思路新鲜 taskkill 结束winrar进程 逆向解决了这个问题。。不错 加分
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |