中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 关于SET命令中,参数环境变量扩充的不解..
作者:
标题: 关于SET命令中,参数环境变量扩充的不解.. 上一主题 | 下一主题
zgren1979
初级用户





积分 52
发帖 24
注册 2006-11-16
状态 离线
『楼 主』:  关于SET命令中,参数环境变量扩充的不解..

今天在看SET命令的帮助,看到参数环境变量.....虽然看完,但觉得蒙蒙笼笼的...


我想所谓

用SET 语句 所赋值是不是可以理解为是静态的,除非有新的SET语句在给他赋值,不然不会改变,又由于在FOR,IF等语句中,首先被编译的是参数,所以(如帮助列1,列2所示),LIST=%LIST% %i这样的关系,其实是反应的%i.

而如果在参数前后加!,既变为动态参数(或变量)就可以参加运算...

总的来说理解还是很混乱,希望学长者明之..怎样理解较为合适.多谢...

附: 帮助列子


不正确的列子.

  Quote:
set LIST=
    for %i in (*) do set LIST=%LIST% %i
    echo %LIST%



  Quote:
sset VAR=before
    if "%VAR%" == "before" (
        set VAR=after;
        if "%VAR%" == "after" @echo If you see this, it worked
    )et VAR=before

正确的列子:

  Quote:
set VAR=before
    if "%VAR%" == "before" (
        set VAR=after
        if "!VAR!" == "after" @echo If you see this, it worked
    )



  Quote:
  set LIST=
    for %i in (*) do set LIST=!LIST! %i
    echo %LIST%



2006-11-20 12:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
reddragonfly
初级用户

DOSFans


积分 48
发帖 21
注册 2006-10-22
状态 离线
『第 2 楼』:  

批处理内置命令:if较为繁琐,set,for相对而言较难掌握;若三个命令交叉配合使用对于初学者来说的确是有些难度;但想学好批处理就必须熟练掌握这几个命令,无奈!
批处理文件中可以对参数或变量赋予相应的值:参数(例如形参%0~%9,%0代表批处理本身,%*是批处理参数的通配符),变量(常通过Set,for命令指定,然后通过其它命令如if等加以应用),若在批处理中启用延缓环境变量(setlocal enabledelayedexpansion)的话,就可以用!符号代替%来调用环境变量所赋予的字符串值,而不是所谓动态环境变量的标识,系统中的几个动态环境变量如下:(%cd%,%time%,%date%,%random%,%errorlevel%,%cmdextversion%,%cmdcmdline%),所谓动态就是随着系统运行环境的变化而变化着(随机性),你不要把参数,变量,动态变量混为一谈;至于参数(或变量)参与运算(进行大小的比较,加减乘除,取余运算等等),完全是通过相应的运算符来实现的!对于扩展变量的理解你更要细看,因为的确很有意思!
你要想熟练掌握并运用这几个命令,就需要勤看,勤写,多看个几遍自然而然就理解通透了!

[ Last edited by reddragonfly on 2006-11-20 at 02:23 PM ]

   此帖被 +1 点积分    点击查看详情   
评分人:【 zgren1979 分数: +1  时间:2006-11-21 11:08




  批处理:探索你的世界到底有多精彩!
2006-11-20 14:11
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (42118593)  编辑帖子  回复  引用回复
tao0610
高级用户

朦胧的世界


积分 579
发帖 218
注册 2006-10-24
状态 离线
『第 3 楼』:  

多看别人的实例,对自己也有一定提高!




认识自己,降伏自己,改变自己
,才能改变别人!
2006-11-20 14:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: