Board logo

标题: 请教“批处理教程(建议耐心看完,必有收获)”中的不明处 [打印本页]

作者: tab54ltc    时间: 2008-5-4 10:35     标题: 请教“批处理教程(建议耐心看完,必有收获)”中的不明处

教程中的例2
例二、再给出一个已经过时的例子(a.bat):
{
@echo off
if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif
a.bat
为什么说这是个过时的例子呢?很简单,因为现在已经几乎没有人用带广告的QQ了(KAO,我的QQ还显示好友三围呢!!),所以它几乎用不上了。但曾经它的作用是不可小窥的:删除QQ的广告,让对话框干干净净。这里用的地址是QQ的默认安装地址,默认批处理文件名为a.bat,你当然可以根据情况自行修改。在这个脚本中使用了if命令,使得它可以达到适时判断和删除广告图片的效果,你只需要不关闭命令执行后的DOS窗口,不按CTRL+C强行终止命令,它就一直监视是否有广告图片(QQ也再不断查看自己的广告是否被删除)。当然这个脚本占用你一点点内存,呵呵。
}


此例中说不关闭命令执行后的DOS窗口,不按CTRL+C强行终止命令,它就一直监视是否有广告图片(QQ也再不断查看自己的广告是否被删除)。我用的时候怎么只有第一次有效,以后再建立新的文件怎么不自动删除?



在一个就是if语句中有一个例子是说
masm %1.asm
if exist %1.obj link %1.obj
else pause & edit %1.asm
也就是if和else搭配使用
我自己编写了一个批处理怎么说else不是外部命令呢,如下
@echo off
if exist  c:\a.txt del c:\a.txt
else md c:\a
echo.&pause
作者: tab54ltc    时间: 2008-5-4 10:54

自己先回复个if语句的吧,把批处理命令改了一下,如下,即成功了
@echo off
if exist e:\a.txt (del e:\a.txt) else md e:\a
echo.&pause
其中else只能与if放入同一行,而且if条件成立的语句必须用()引起来
以上仅是本人实验得出的结果,如果不正确之处请予指正,谢谢
作者: 随风    时间: 2008-5-4 10:58

第一个问题,语句不全,应该要加上循环语句才不会退出,不过那样的话会很占系统资源,不实用。
第二个问题, else 不能在一行的开头使用。
应该是 
if exist  c:\a.txt (del c:\a.txt) else md c:\a
或者
if exist  c:\a.txt (
  del c:\a.txt
) else md c:\a
作者: tab54ltc    时间: 2008-5-4 11:47     标题: 回复 3楼 的帖子

谢谢巡逻员,看来那个教程只是起讲解作用,还有很多语法问题




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2