中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 根据条件 删除自身 上一主题 | 下一主题
ooaf
中级用户





积分 313
发帖 162
注册 2007-4-2
状态 离线
『楼 主』:  根据条件 删除自身

根据条件删除自身
有一个c:\a.txt, 里面有一行:如d:\soft\my ware,当然c:\a.txt 的内容不定。
P的内容:
一个.bat ,如果在c:\a.txt里的目录,%windir%,d:\programs file\cr,运行后就不删除自身,否则删除自身。

2009-2-7 11:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 2 楼』:  

我靠
好不容易写了一大串命令,一运行测试就把自己给删除了。




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-7 11:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 3 楼』:  Re 2楼

我一般是在del、rd之类的代码前面加个echo来测试。

   此帖被 +9 点积分       点击查看详情   
评分人:【 yishanju 分数: +8  时间:2009-2-7 12:31
评分人:【 ooaf 分数: +1  时间:2009-2-7 12:48




2009-2-7 11:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 4 楼』:  

type a.txt||echo %cd%|findstr /c:"%windir%" /c:"d:\programs file\cr"||del %0&echo %cd%|findstr /c:"%windir%" /c:"d:\programs file\cr"||type a.txt||del %0

   此帖被 +2 点积分      点击查看详情   
评分人:【 ooaf 分数: +2  时间:2009-2-7 12:47





有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-7 12:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by HAT at 2009-2-7 11:39:
我一般是在del、rd之类的代码前面加个echo来测试。

我又想到了一个新办法对付这个批处理

type %0 >>%random%bak.bat

   此帖被 +1 点积分     点击查看详情   
评分人:【 ooaf 分数: +1  时间:2009-2-7 12:48





有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-7 12:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 6 楼』:  

楼主光评分没用啊,说说代码解决了你问题没有




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-7 13:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ooaf
中级用户





积分 313
发帖 162
注册 2007-4-2
状态 离线
『第 7 楼』:  

echo %cd%
echo %~dp0

type c:\a.txt||echo %cd%|findstr /c:"%windir%" /c:"d:\programs file\cr"||del %0&echo %cd%|findstr /c:"%windir%" /c:"d:\programs file\cr"||type c:\a.txt||del %0

pause

还要增加检查是否存在c:\a.txt,因为c:\a.txt 是由其一个p 生成的含有路径的文本,

如果不存在c:\a.txt或者c:\a.txt 为空,则只检查自身是否在,%windir%,d:\programs file\cr。
如果存在c:\a.txt,则完全用:
type a.txt||echo %cd%|findstr /c:"%windir%" /c:"d:\programs file\cr"||del %0&echo %cd%|findstr /c:"%windir%" /c:"d:\programs file\cr"||type a.txt||del %0

附件 1: 1.JPG (2009-2-7 16:24, 23.41 K)


2009-2-7 16:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ooaf
中级用户





积分 313
发帖 162
注册 2007-4-2
状态 离线
『第 8 楼』:  

还有一张图片,当a.txt 无内容时,并不能删除自身。

附件 1: 2.JPG (2009-2-7 16:33, 30.51 K)


2009-2-7 16:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 9 楼』:  

这个。。和你在主题说的不一样啊
自己学着怎么样写出自己想要的代码吧




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-7 17:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ooaf
中级用户





积分 313
发帖 162
注册 2007-4-2
状态 离线
『第 10 楼』:  

呵呵,请多指教。

if exist c:\a.txt set /p w=<c:\a.txt&&(for /f %%i in ('echo "%cd%"^|findstr /v /i "%w%" "%windir%" "d:\programs file\cr"') do cls)&&del%0

2009-2-7 17:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 11 楼』:  

这样也行,太NB了




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-7 17:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ooaf
中级用户





积分 313
发帖 162
注册 2007-4-2
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by ooaf at 2009-2-7 05:19 PM:
呵呵,请多指教。

if exist c:\a.txt set /p w=<c:\a.txt&&(for /f %%i in ('echo "%cd%"^|findstr /v /i "%w%" "%windir%" "d:\programs file\cr&quo ...

测试多次,发现代码有问题,findstr无效,不知哪个地方出错了?

2009-2-7 18:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 13 楼』:  

需要加 /C




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-7 19:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 14 楼』:  

echo "%cd%"|findstr /v /i "TEST1"  "TEST2"




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-7 19:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ooaf
中级用户





积分 313
发帖 162
注册 2007-4-2
状态 离线
『第 15 楼』:  



  Quote:
Originally posted by yishanju at 2009-2-7 07:25 PM:
需要加 /C

是这样吗?

if exist c:\a.txt set /p w=<c:\a.txt&&(for /f %%i in ('echo "%

cd%"^|findstr /c /v /i "%w%" "%windir%" "d:\programs file\cr"') do cls)

&&del %0
echo %w%
pause
好像 %w% 在findstr /c /v /i "%w%" "%windir%" "d:\programs file\cr" 里并没有起作用!
如图:

附件 1: 未命名.JPG (2009-2-7 19:31, 29.2 K)


2009-2-7 19:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: