![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 07:43 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 根据条件 删除自身 |
| 可打印版本 1,193 / 14 |
| 第1楼 ooaf | 发表于 2009-02-07 11:02 |
| 中级用户 发帖 162 积分 313 | |
|
根据条件 删除自身 根据条件删除自身
有一个c:\a.txt, 里面有一行:如d:\soft\my ware,当然c:\a.txt 的内容不定。 P的内容: 一个.bat ,如果在c:\a.txt里的目录,%windir%,d:\programs file\cr,运行后就不删除自身,否则删除自身。 |
|
| 第2楼 yishanju | 发表于 2009-02-07 11:37 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
我靠
好不容易写了一大串命令,一运行测试就把自己给删除了。 |
|
| 第3楼 HAT | 发表于 2009-02-07 11:39 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 2楼 我一般是在del、rd之类的代码前面加个echo来测试。
|
|
| 第4楼 yishanju | 发表于 2009-02-07 12:22 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
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
|
|
| 第5楼 yishanju | 发表于 2009-02-07 12:30 |
| 银牌会员 发帖 1,357 积分 1,488 | |
Originally posted by HAT at 2009-2-7 11:39: 我又想到了一个新办法对付这个批处理type %0 >>%random%bak.bat |
|
| 第6楼 yishanju | 发表于 2009-02-07 13:19 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
楼主光评分没用啊,说说代码解决了你问题没有
|
|
| 第7楼 ooaf | 发表于 2009-02-07 16:21 |
| 中级用户 发帖 162 积分 313 | |
|
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 (23.41 KiB) |
|
| 第8楼 ooaf | 发表于 2009-02-07 16:33 |
| 中级用户 发帖 162 积分 313 | |
|
还有一张图片,当a.txt 无内容时,并不能删除自身。
附件 2.JPG (30.51 KiB) |
|
| 第9楼 yishanju | 发表于 2009-02-07 17:02 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
这个。。和你在主题说的不一样啊
自己学着怎么样写出自己想要的代码吧 |
|
| 第10楼 ooaf | 发表于 2009-02-07 17:19 |
| 中级用户 发帖 162 积分 313 | |
|
呵呵,请多指教。
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楼 yishanju | 发表于 2009-02-07 17:53 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
这样也行,太NB了
|
|
| 第12楼 ooaf | 发表于 2009-02-07 18:52 |
| 中级用户 发帖 162 积分 313 | |
Originally posted by ooaf at 2009-2-7 05:19 PM: 测试多次,发现代码有问题,findstr无效,不知哪个地方出错了? |
|
| 第13楼 yishanju | 发表于 2009-02-07 19:25 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
需要加 /C
|
|
| 第14楼 yishanju | 发表于 2009-02-07 19:27 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
echo "%cd%"|findstr /v /i "TEST1" "TEST2"
|
|
| 第15楼 ooaf | 发表于 2009-02-07 19:31 |
| 中级用户 发帖 162 积分 313 | |
Originally posted by yishanju at 2009-2-7 07:25 PM: 是这样吗? 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 (29.2 KiB) |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |