scriptRun原型:
scriptRun(name, scriptFile)
scriptRun(name, scriptFile,arguments)
对应的 REST API:
执行脚本
描述:
运行指定脚本文件,通过该函数可以实现同时运行多脚本的目的。脚本文件可为 JS 文件,也可为 SCP 文件。
API "scriptRun(name, scriptFile,arguments)" 在 Total Control 7.0.0 及以后版本可用。
参数:
name: 别名,该脚本运行的别名。
scriptFile:脚本文件路径。可以使用文件绝对路径,也可使用用户自定义路径、环境变量路径或者 Total Control 脚本默认路径的相对路径。
arguments: 设置执行脚本需要的参数,例如:{arguments:['test.jpg',sigmaConst.IMG_JPG,0,0 ,100,100]},当脚本启动时,"arguments" 中的变量将提供可用的信息,也就是说在脚本中我们可以直接用 "arguments" 提供的参数,对于示例:arguments.length = 7,arguments [0] ='test.js',arguments [1] ='sigmaConst.IMG_JPG'......
arguments 中也提供可选参数 {deviceName:<设备名称>},当此选项指定时,Device.searchObject(sigmaConst.DevSelectOne) 将返回 "deviceName" 选项中指定名称的设备对象,将不会弹出用户选择设备的窗口, 如果找不到设备名称,则显示一个弹出窗口。
例如: {arguments:['test.jpg',sigmaConst.IMG_JPG,0,0 ,100,100], deviceName:'Mobile1'}
关于脚本路径的具体说明:
绝对路径:指定 scriptFile 的绝对路径
相对路径:相对路径有两种,一个是用户预定义路径,另一个是Total Control脚本缺省路径
1. 用户预定义路径:
如果用户的脚本中有如下定义:
define('scriptPath', 'c:\\...');
则会到 scriptPath 对应的路径下寻找脚本,然后执行。
2. Total Control 环境变量路径:
如果用户的脚本中未定义 scriptPath ,则会通过环境变量 TCSCRIPTPATH 进行查找路径是否有对应JS或SCP文件,如有,则执行;
3. Total Control 脚本默认路径路径: 如果用户的脚本中未定义 scriptPath ,在环境变量 TCSCRIPTPATH 也没找到对应的文件,则会在脚本默认路径中查找,即查找<我的文档>/Scripts下是否有对应JS或SCP文件,如有,则执行,如无将退出执行;
注意,脚本路径的具体执行顺序如下:
如果是绝对路径,直接执行,若不存在,则报错。
如果用 define 自定义了脚本路径,则检查该脚本路径下脚本文件是否存在,若存在,则执行;若不存在,则在环境变量的路径下找文件;
如果在 define 的自定义路径下没找到文件,就在环境变量 TCSCRIPTPATH 对应的路径进行JS或SCP文件查找,若存在,则执行;
如果在环境变量中未找到文件,将在/此电脑/我的文档/Scripts/下查找是否有该文件,若存在,则执行;若不存在,则报错;
win7设置TCSCRIPTPATH 环境变量:
1. 点击“我的电脑”,选择属性。
2. 找到并打开“高级系统配置”。在接下来的页面中点击“高级系统配置”,打开“系统属性”窗口。
3. 找到“环境变量”按钮并点击。
4. 环境变量窗口。在环境变量窗口中一般有两个变量,一个是你当前所使用的用户独有的环境变量,另一个是所有用户都可以访问的系统变量。其实如果在你的电脑上你只使用一个用户的话,那么不管你修改的用户的环境变量还是系统变量,效果都是一样的。为了以防未来会新建其他用户,那么我建议你修改系统变量而不是某个用户独有的环境变量。
5. 在系统变量显示框中点击"新建",在弹出的“新建系统变量”框中,"变量名"填 TCSCRIPTPATH ,“变量值”填路径地址,例如:E:\tools。
6. 点击"确定"就设置成功了。
注意:
设置环境变量后,重启电脑上的 Total Control,设置才会生效。
返回值:
>0 : 运行ID值
<=0: 失败
异常:lastError();
示例://示例1,绝对路径//运行绝对路径E:/File/JScripts/Public/指定的脚本文件fileBinaryReader.js,脚本别名为fileBinaryReader1var ret = scriptRun('fileBinaryReader1', 'E:/File/JScripts/Public/fileBinaryReader.js');if (ret > 0 ) { print("script run id :"+ret);} else { print(lastError());}//示例2,相对路径(用户预定义路径)//运行用户指定路径目录define('scriptPath', 'E:/File/JScripts/Public/');//运行用户指定目录E:/File/JScripts/Public/下的脚本文件fileBinaryReader.js,脚本别名为fileBinaryReader2var ret = scriptRun('fileBinaryReader2', 'fileBinaryReader.js'); if (ret > 0 ) { print("script run id :"+ret);} else { print(lastError());}//示例3,相对路径(Total Control脚本缺省路径)//设置环境变量 TCSCRIPTPATH 为 'E:/File/',则运行目录为'E:/File/fileBinaryReader.js',脚本别名为fileBinaryReader3var ret = scriptRun('fileBinaryReader3', 'fileBinaryReader.js'); if (ret > 0) { print("script run id :"+ret);} else { print(lastError());}//示例4,相对路径(Total Control脚本缺省路径)//运行目录:/此电脑/文档/Scripts/fileBinaryReader.js,脚本别名为fileBinaryReader4var ret = scriptRun('fileBinaryReader2', 'fileBinaryReader.js'); if (ret > 0 ) { print("script run id :"+ret);} else { print(lastError());}//示例5,将设备名为 "mobile1" 的设备名称修改为 "mobile2"//scriptRun(name, scriptFile,arguments) 示例//定义 arguments,设置一些 setName.js 需要用到的参数var arguments = {arguments:[1,'mobile2', 'test.js'], deviceName:'mobile1'};//运行指定脚本 setName.js,别名为 setMobileNamevar ret = scriptRun('setMobileName', 'setName.js',arguments);if (ret > 0 ) { print("script run id :"+ret);} else { print(lastError());}//setName.js 的内容如下://根据选择的一个设备获取设备var device = Device.searchObject(sigmaConst.DevSelectOne);//将手机的名称设置为"mobile2",arguments[1] 取的是之前 arguments 中定义的 'mobile2'ret = device.setName(arguments[1]);if(ret == 0) { print("Successfully set the phone name");} else { print(lastError());}运行结果://成功运行脚本,则输出如下内容,否则输出错误信息。script run id :1537301948136