[技术] MortScript使用教程(4.3b11BETA版)
一、MortScript概述:
Mort:批量;Script:脚本;MortScript:批处理脚本;(故为顺序逐条执行)
它是一种解释程序,就象Visual Basic的即时解释环境一样。所以,它不生成EXE等可执行程序,而是由MortScript.exe来运行*.mscr或
*.mortrun的脚本文件。当然,如果进行了安装,或设置了文件关联,则可直接点击脚本文件运行。
二、mscr脚本概述:
*.mortrun格式为MortScript的前身MortRunner的兼容脚本。*.mscr格式可用任意文本编辑器来编写脚本,如windows自带的记事本,保存
格式推荐ANSI,当然,它还兼容UNICODE格式。文件名及内容均不区分大小写。
脚本里的空格、制表符、换行连接符:空格和制表占位符可放在命令、函数名、括号、参数、运算符、选项的前、后等位置,但均被忽略
,字符串中需要使用空格则应放在引号内。换行连接符采用\符,放置于所在行的行末。 未指定路径则默认当前脚本所在路径。注释行则是以#开头的行。在INI文件中,则使用;进行注释。
结束以:Exit,退出和结束脚本。
三、MortScript功能:
1、运行、激活,隐藏,关闭应用程序。
2、根据指定条件,执行或延时执行程序、脚本。
3、模拟键盘、鼠标、触笔操作。
4、复制、重命名、移动、删除文件或文件夹,创建文件夹,以及创建快捷方式。
5、支持ZIP格式压缩包。
6、读、写文本文件。
7、读、改注册表。
8、下载、创建、关闭链接。
9、做判断、循环操作。
10、部分系统的旋屏、音量、背光、重启操作。
四、MortScript安装包结构解读:
pc:分别适用WM、CE、SP、win2000、XP、vista系统设备绿色使用。
setup:分别适用WM、CE、SP系统设备,通过PC连接设备同步安装。
cab:分别适用WM、CE、SP系统设备直接安装。
killproc.exe:CE系统结束进程用。不用此功能时,可以不要该文件。
mortzip.dll:除PC系统外适用,用于ZIP压缩包的解压支持文件。
setup.dll:除PC系统外适用,用于CAB包安装、卸载信息记录。
此二个DLL文件,如不使用上述二个功能时,可以不要。
另:适用CE系统的版本,基本兼容适用WM系统。
Autorun.exe:运行该程序,执行同名.mscr脚本,该程序可改名。不改名可放在2577或0文件夹,而得以在拨、插储存卡时支持自动运行(插
卡时执行autorun.mscr,拨卡时执行autoexit.mscr,老程序则为:autorun.mortrun和
autoexit.mortrun),当然,并不是所有设备都支持该
功能。且该程序需要MortScript.exe主程序支持。
五、一个PPC独有的可选参数:
/wait=n
n为一个以秒为单位的数字,除此外的所有类似于此的表达式均为变量的定义表达,当然,所有其他参数也不会以/或-开始。该功能用于如关
联了PPC按键,但在PPC唤醒时段不能执行脚本时候的延时辅助。不过,MortScript已默认5秒延时。
六、帮助手册PDF里的命令语法样式说明:
粗体字:命令、函数名、关键字。
斜体字:变量,常用表达式。
[]:中括号为可选项(即可省略项)。
{}:花括号为可多选项或省略项。
():分组,经常用|符来列出可选项。注:函数不能省略括号,命令可以省略。如:message("你好!")和message"你好!"
X|Y|Z:必选其中一个选项,常为定值选择。
七、常用语法:
关键字:
"XXX"
注:引号在字符串里的引用,需要双层使用。
^CR^:回车;^LF^:换行;^NL^:换行;^TAB^:制表符。(^CR^^LF^=^NL^) 字符串表达式:
value=Eval(string)
常数:
3.1415926
变量:
X=表达式
Set(variable,expression)
变量名由:字母、数字(不能以数字打头)、下划线组成,且不区分大小写。
X+=1相当于x=x+1;类似的双目运算符还有:-=、*=、/=、&=、\=。
预定义变量:
TRUE,ON,YES:初始值为1;
FALSE,OFF,NO:初始值为0;
CANCEL:初始值为2;
PI:3.14159266535897932384626433832759
SQRT2:1.4......
PHI:1.6......
EULER:2.7......
全局变量:Global(variable{,variable})
局部变量:Local([variable{,variable}])
数组array[]:实质一种特殊类型的变量。数组名和元素名也是不区别大小写的。
Clear(variable)
检验变量:
bool=IsEmpty(variable)
返回变量类型:
int=VarType(variable)
返回值列表:var_empty;var_int;var_float;var_string;var_array;var_window。 函数:
函数名(参数)
运算符:(按由高到低优先级列表)
()
NOT
^
*,/,MOD
+,-
&,\
>,>=,<,<=,=,<>
gt,ge,lt,le,eq,ne
condition?true:false
AND,&&
OR,||
八、流程控制语句:
1、条件判断控制:
If (wndExists("Word"))
EndIf
While (X<>5)
EndWhile
If (表达式)
{语句}
{ElseIf (表达式)
{语句}}
[Else
{语句}]
EndIf
2、多重分支控制:
Switch (表达式)
Case(参数 {,参数})
{指令}
{Case(参数{,参数})
{指令}}
{Default
{指令}}
EndSwitch
(
Choice(title,hint,value,value{,value})
Choice(title,hint,array)
ChoiceDefault(title,hint,default,timeout,value,value{,value}) )
Case(value{,value})
{instructions}
{Case(value{,value})
{instructions}}
{Default
{instructions}}
EndChoice
示例:
choice("Test","select a number","one","two","three") case(1)
message("one")
case(2,3)
message("two or three")
case(3)
message("three")
case(0)
message("cancel")
exit
endchoice
3、条件循环控制:
while(条件)
{表达式}
endwhile
4、迭代循环:
ForEach variable{,variable}in type(parameter{,parameter}) {instructions}
endforeach
ForEach variable in values (value {,value})
ForEach variable in array (array variable)
ForEach key, value in array (array variable)
ForEach variable in split (string,separator,trim?)
ForEach variable in Charsof (string)
ForEach variable in iniSections (file name [,codepage])
ForEach key,value in iniKeys (file name,section[,codepage]) ForEach variable in regSubkeys (root,key)
ForEach value,date in regValues (root,key)
ForEach variable in files (search expression)
ForEach variable in directories (search expression)