[技术] 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:必选其中一个选项,常为定值选择。
七、常用语法: 关键字: \
注:引号在字符串里的引用,需要双层使用。
^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(\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(\case(1)
message(\case(2,3)
message(\case(3)
message(\case(0)
message(\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)
5、常数循环: Repeat (count) {instructions} EndRepeat
6、FOR循环:
For variable=start to end [step step] {instructions} Next
7、中断和继续:
中断:Break [(structure type)] 继续:Continue [(structure type)] 8、错误处理: Try
instructions {Catch
instructions} EndTry
错误提示等级:ErrorLevel(error level)
off:关闭出错提示;critical:特殊提示;syntax:语法错误提示(参数错误;无效命令;函数名);error:其他错误;warn:文件或文件夹 的移动,复制,重命名出错。 9、子程序及函数的调用:
Sub subroutine [(parameter{,parameter})] {instructions} EndSub 内部:
Call (subroutine{,parameter})
CallFunction (subroutine,variable{,parameter}) 外部:
CallScript (MortScript file{,parameter})
CallScriptFunction (MortScript file,variable{,parameter}) 10、包含子程序的其他文件命令: Include(file) 11、参数返回: Return(value)
12、子程序的退出: ExitSub[(value)]
九、字符串操作: int=Length(string)
返回字符串字数。(含字符串里的空格)
string=SubStr(string,从左往右第几位[,截取几个])
字符串截取。截取长度省略或超长,则截取至完。截取长度短于字串数,则返回空字符串。位数为负时,则反向截取。