|
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 ]
|
批处理:探索你的世界到底有多精彩! |
|
2006-11-20 14:11 |
|
|
tao0610
高级用户
朦胧的世界
积分 579
发帖 218
注册 2006-10-24
状态 离线
|
『第
3 楼』:
多看别人的实例,对自己也有一定提高!
|
认识自己,降伏自己,改变自己,才能改变别人! |
|
2006-11-20 14:59 |
|
|