中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【已解决】删除批处理所在目录的大难题
« [1] [2] »
作者:
标题: 【已解决】删除批处理所在目录的大难题 上一主题 | 下一主题
heicai
中级用户





积分 385
发帖 156
注册 2007-1-19
状态 离线
『第 16 楼』:  


@echo off
set ml=%cd%
echo ping 127.1 -n 4 >%temp%\del.bat
echo rd /s /q "%ml%">>%temp%\del.bat

start %tmp%\del.bat
del %0
这段代码哪有问题,仍然提示有进程在运行无法删除。郁闷了

2007-4-18 02:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 17 楼』:  

del %0

这一句后面不要回车就可以。



知,不觉多。不知,乃求知
2007-4-18 02:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
heicai
中级用户





积分 385
发帖 156
注册 2007-1-19
状态 离线
『第 18 楼』:  

试了2楼的方法。不行。晕

2007-4-18 02:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
heicai
中级用户





积分 385
发帖 156
注册 2007-1-19
状态 离线
『第 19 楼』:  

因为这段代码是在BAT目录的一个批处理,他在运行就没法被删啊。郁闷

@echo off
set ml=%cd%
echo ping 127.1 -n 4 >%temp%\del.bat
echo rd /s /q "%ml%">>%temp%\del.bat

start %tmp%\del.bat
del %0

2007-4-18 02:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 20 楼』:  

概念还没有弄懂就乱来。当然啦。



知,不觉多。不知,乃求知
2007-4-18 02:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
heicai
中级用户





积分 385
发帖 156
注册 2007-1-19
状态 离线
『第 21 楼』:  



  Quote:
Originally posted by flyinspace at 2007-4-17 01:28 PM:
概念还没有弄懂就乱来。当然啦。

怎么说。

2007-4-18 02:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
heicai
中级用户





积分 385
发帖 156
注册 2007-1-19
状态 离线
『第 22 楼』:  

解决了。代码改为这样就可以了。


@echo off
set ml=%cd%
echo ping 127.1 -n 4 >%temp%\del.bat
echo rd /s /q "%ml%">>%temp%\del.bat
cd..
start %tmp%\del.bat
del %0

2007-4-18 02:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
htysm
高级用户




积分 866
发帖 415
注册 2005-12-4
状态 离线
『第 23 楼』:  

这样就生成垃圾文件了,应该再加一句:
echo del /q "%temp%\del.bat" >> %temp%\del.bat

2007-4-18 04:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
SunRiseBoy
初级用户





积分 38
发帖 20
注册 2006-7-4
状态 离线
『第 24 楼』:  

@echo off
set ml=%cd%
echo ping 127.1 -n 4 >%temp%\del.bat
echo rd /s /q "%ml%">>%temp%\del.bat
cd..
start %tmp%\del.bat
del %0
echo del /q "%temp%\del.bat" >> %temp%\del.bat

经典功能的批处理啊,怎么也明白删除echo ping 127.1 -n 4 >%temp%\del.bat这一行运行还是有ping的过程,郁闷,不用ping不行吗?

2007-6-29 00:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 25 楼』:  

在坛子里摸到的,最牛了,因为批处理本身正在运行,所以要先退出当前目录才能删除,怎一个纟色字了得!
cd\&rd /s /q "%~dp0"

2008-1-26 16:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: