- ·上一篇文章:wbat教程第四部分:命令--批处理文件的指令明细
- ·下一篇文章:wbat教程第六部分:处理--用户的鼠标和键盘操作
- ·百度中搜索更多的关于“wbat教程第五部分:控制--返回码和变量”相关内容
- ·谷歌中搜索更多的关于“wbat教程第五部分:控制--返回码和变量”相关内容
- ******申明******
- 本站文章内容有部分为收录网络中其他网友内容,DOS资源站不保证所有的代码都适合你使用。
- 由于编辑匆忙,有可能造成某些脚本文件出现丢失代码或代码无法运行的情况,请网友根据情况自行修改。
- 如果能将出错部分反馈给我,那就更好了。
wbat教程第五部分:控制--返回码和变量
通过之前的学习我们已经知道,用户的输入一般是通过返回码起作用的。
请记住:只有在使用call W.BAT命令时WBAT才产生环境变量。无论如何
,为了从输入框、检查框、单选框中获得结果,必须使用这个结构。
重要提示:
当一个对话框被 ESC(或同等行为)关闭的时候,输入框,检查框和单
选框的变量将会保持不变即使他们在框中已经被改变(相当于不强制保存)
。这种状况可以在Wbat.ini中修改选项 ESCinput=1 来改变。
<返回码>
关于返回码我们先前已经有所提及。在此我们在复习并补充一下。
WBAT依照所选的按钮返回一个返回码,按钮从左到右、从上到下的顺序
按1、2、3... 排列,只有按钮被计算。记住“if ERRORLEVEL n”意思是“
如果返回码等于或大于‘n’,通过goto语句跳到所指分支,因此,你必须
按从高到低的顺序来排列返回码。
例如:
wbat box OK,options,cancel
if errorlevel 3 goto END
if errorlevel 2 goto OPTIONS
if errorlevel 1 goto OK
退出该对话框操作的返回码是100。
万一“真正的” 错误发生 (比如文件或标签不存在),WBAT返回
errorlevel 255, 和显示一个信息。此时WBAT将会暂停在错误点,除非你在
WBAT.INI里设置ErrorPause=0。
<wbat变量>
由于用CALL W.BAT代替WBAT.COM,所产生的变量可用于输入框、单选框
和检查框,也用于按钮和菜单选项(然而, 不能用于快速对话框)。
下面这些变量名被用于WBAT:
WBAT 接收按钮、菜单项目和列表的返回。
WCB1...WCB9 接收检查框的返回(0或1(off/on))。
WRB 接收单选按钮的返回(号码1到9)
输入框有些特别,它用布局中所指定的变量返回输入框的内容。
批处理中的变量用“%”标记,举例来说:goto %wbat%
<按钮变量>
按钮变量%wbat%以所选按钮或菜单项的名字返回,它一般会作为goto命
令的对象。
返回的字符串只能是一个单,而按钮或菜单项的名字却可以是多个单词,因此通常以名字的第一个单词返回。但如果符号“&”被用来标记一个热键,那么“&”所在的那个单词将被返回(同样“&”不会显示)。例如:
[Run Scan&disk ]
goto %wbat%
:Scandisk
无论热键功能是否开启符号“&”都会被识别。
<wbat字符串>
因为WBAT变量在大多数情况下都将被作为GOTO的目标,而用一些特殊的符号作为批处理文件的标签在DOS下可能会有问题,因此,WBAT只接受字母,数字和下面的这些符号:
@ $ - _ ?
其他所有的符号将被移除。
(但列表框所返回的内容是不受上述约束的。)
注意:返回时大写/小写被保护。当你比较字符串的时候,要注意。 因为“if string1==string2”与大小写有关!
<“?”变量>
WBAT返回码也作为环境变量%?%返回,除非这一功能在INI文件(ELvar)
中被关掉。这在菜单中可便利的控制条目的位置。
例如:
set mpos=1 设定起始位置
:MAIN
call w.bat menu :main #%mpos% 最后使用位置
set mpos=%?% 把新的位置存档
在这个例子中,选择条会被设置到最后选择的位置上。 因为可以数学表达
式如( a-b 或是 a+b ),你甚至可以选择下一个位置:
call w.bat :menu #%mpos%+1
注意:这个方法只在菜单下工作(或只用在对话框按钮中),因为选择条可
能也会设置在其他控件上,但返回的%?%变量却只能指向按钮。
<重新设置变量>
避免环境空间溢出,当变量不再用时,你得清除它。在Windows下的DOS
对话框被关闭的时,你不需要清除变量。
例如: set name=
<列表框>
WBAT LIST命令用于提供各种类型的项目,像文件名或目录名。注意下
列与其他的WBAT boxes的不同:
* 被选项返回的不是errorlevel,因为项目可以超过255。用 %?% 变量获得
返回数。
* 当一个项目被选择的时候,返回 Errorlevel 0。Errorlevel 254用于退
出,255用于真正的错误(程序出错)。
* %wbat%变量返回的是被选择项目的全部内容(也就是源文件的一个整行)。
* 按ESC后WBAT变量将被清空。
* 热键不能用于列表框。
<列表变量>
列表变量在返回时会保持原貌(因为它不象其它对话框一样需要用GOTO
跳到目标)。
WBAT返回包括空格和特殊的符号的完整项目字符串(然而,开头和结尾
的空格将被移除)。
<标签>
在 DOS 和 Windows 95/98 下,批处理的标签最长不能超过8个字符,
超出的部分将被忽略。你也可以使用更长的标签,但要确定前8个字符必须
与众不同。(这些已经过时了)
注意:标签长度在windows NT/2000没有限制,布局文件里也没有限制。标
签不区分大小写。
所有资料及WBAT工具可以在本站下载 地址:http://cmdos.net/soft/sort017/down-613.html
<标签前缀>
在一个批处理文件里有多个对话框时,你可能从不同的对话框中获得相
同的变量字符串返回。此时,为了避免混淆,你可以给标签加上前缀,并在
跳转时也加上前缀。例如你有一个按钮的字符串为hero,则:
……
GOTO A-%wbat%
:A-copy
……
:B-copy
……

