中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 06:48
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 根据条件 删除自身 查看 1,192 回复 14
楼 主 根据条件 删除自身 发表于 2009-02-07 11:02 ·  中国 北京 联通
中级用户
★★
积分 313
发帖 162
注册 2007-04-02 06:45
19年会员
UID 83693
性别 男
状态 离线
根据条件删除自身
有一个c:\a.txt, 里面有一行:如d:\soft\my ware,当然c:\a.txt 的内容不定。
P的内容:
一个.bat ,如果在c:\a.txt里的目录,%windir%,d:\programs file\cr,运行后就不删除自身,否则删除自身。
2 发表于 2009-02-07 11:37 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
我靠
好不容易写了一大串命令,一运行测试就把自己给删除了。

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
3 Re 2楼 发表于 2009-02-07 11:39 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
我一般是在del、rd之类的代码前面加个echo来测试。
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
yishanju +8 2009-02-07 12:31
ooaf +1 2009-02-07 12:48
4 发表于 2009-02-07 12:22 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
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 条) 点击查看详情
评分人分数时间
ooaf +2 2009-02-07 12:47

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
5 发表于 2009-02-07 12:30 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
Originally posted by HAT at 2009-2-7 11:39:
我一般是在del、rd之类的代码前面加个echo来测试。


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

type %0 >>%random%bak.bat
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
ooaf +1 2009-02-07 12:48

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
6 发表于 2009-02-07 13:19 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
楼主光评分没用啊,说说代码解决了你问题没有

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
7 发表于 2009-02-07 16:21 ·  中国 北京 联通
中级用户
★★
积分 313
发帖 162
注册 2007-04-02 06:45
19年会员
UID 83693
性别 男
状态 离线
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.JPG
8 发表于 2009-02-07 16:33 ·  中国 北京 联通
中级用户
★★
积分 313
发帖 162
注册 2007-04-02 06:45
19年会员
UID 83693
性别 男
状态 离线
还有一张图片,当a.txt 无内容时,并不能删除自身。
附件
2.JPG
9 发表于 2009-02-07 17:02 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
这个。。和你在主题说的不一样啊
自己学着怎么样写出自己想要的代码吧

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
10 发表于 2009-02-07 17:19 ·  中国 北京 联通
中级用户
★★
积分 313
发帖 162
注册 2007-04-02 06:45
19年会员
UID 83693
性别 男
状态 离线
呵呵,请多指教。

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
11 发表于 2009-02-07 17:53 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
这样也行,太NB了

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
12 发表于 2009-02-07 18:52 ·  中国 北京 联通
中级用户
★★
积分 313
发帖 162
注册 2007-04-02 06:45
19年会员
UID 83693
性别 男
状态 离线
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无效,不知哪个地方出错了?
13 发表于 2009-02-07 19:25 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
需要加 /C

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
14 发表于 2009-02-07 19:27 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
echo "%cd%"|findstr /v /i "TEST1" "TEST2"

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
15 发表于 2009-02-07 19:31 ·  中国 北京 联通
中级用户
★★
积分 313
发帖 162
注册 2007-04-02 06:45
19年会员
UID 83693
性别 男
状态 离线
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" 里并没有起作用!
如图:
附件
未命名.JPG
论坛跳转: