附录-23 全局变量Global |
首页 后退 前进 |
在版本5.3中,可以在TCIMG运行时将主命令中的信息保存并传递到其它命令.
如果启用"全局性",则命令将信息写入已注册的数组,其数据可用于其它命令.
一个命令可以有几个数组:输入和输出数据的数组...
1. 在全局变量中记录信息.
a)具有全局变量的命令. 在命令描述页面上,一个注释表示是否可以记录和传递信息(在大多数命令中,这是必要的). 具有全局变量的完整命令列表 表.
b)包含全局变量. 在正常模式下,全局变量关闭.要使用它们,您需要在命令之前注册全局(一系列命令),之后将声明变量,并在自动模式下,在每个命令完成后,将创建数据数组.
示例 global name=... global copys=%L||"%t"//0
运行命令时 exect 因为不需要指定全局命令本身声明所有全局变量.
c)全局变量的名称. 命令在标称变量中创建数组,其名称从单词GLOBAL中添加,并在上部NAME中添加命令名称,例如GLOBALCOPYS 如果命令支持创建和传递几个数组,那么数字0,1或2 GLOBALCOPYS0 - 输入数据的数组 GLOBALCOPYS - 输出数据数组 GLOBALCOPYS1 - 复制对象的数组 GLOBALCOPYS2 - 一个未组合对象的数组 见 表
d)变量及其数据的存在期限. 存储和保存变量,直到TCIMG关闭. 调用与创建的相同命令时,变量中的数据将被覆盖.
e)全局变量处理参数的顺序. 首先处理全局变量,而不管其中的位置和数量如何. 即首先,将变量的信息传递给参数字符串,然后计算参数.
2.在命令中使用全局变量. a)接受全局变量的命令. 大多数命令都有能力从全局变量获取数据. 如果你发现在一些命令中,这不会发生,你可以报告它 - 该功能将被添加.
b)在命令中从全局变量获取数据的语法. global name1=... name2=... GLOBALNAME1<Type>... GLOBALNAME1<Type> ... GLOBALNAME1<Type> •处理参数后的命令name1使用数据创建一个全局变量GLOBALNAME1 •name2命令根据类型的类型使用GLOBALNAME1数据 •在命令中,可以重用GLOBALNAME1的数据
global name1=... name2=... GLOBALNAME1<Type>... name3=... GLOBALNAME1<Type>... nameN=... GLOBALNAME1<Type>... •name1命令创建一个全局变量GLOBALNAME1 •命令name2 ... nameN使用数据GLOBALNAME1
global name1=... name2=... GLOBALNAME1<Type>... nameN=... GLOBALNAME2<Type>... nameM=... GLOBALNAMEN<Type>... •name1命令创建一个全局变量GLOBALNAME1 •name2命令使用GLOBALNAME1数据并创建其GLOBALNAME2 •nameN命令使用GLOBALNAME2数据并创建其GLOBALNAMEN变量 •nameM命令使用GLOBALNAMEN数据
global name1=... name2=... name3=... GLOBALNAME1<Type>... GLOBALNAME2<Type>... •name1命令创建一个全局变量GLOBALNAME1 •name2命令创建一个全局变量GLOBALNAME2 •name3命令使用GLOBALNAME1和GLOBALNAME2数据
选项可以很多...
3.从数组获取各种数据.
由于全局变量GLOBALNAME是数组(元素列表),因此可以从它们获取各种信息:
a)获取数组元素的列表文件. GLOBALNAME<t> 使用t参数,GLOBALNAME数组的所有数据都将写入临时文件,其完整路径将传递到命令行.
示例 global copys=%L||"%t"//0 renms=GLOBALCOPYS<t>||??2 •复制后的copys命令(选定的对象)自动创建数组: GLOBALCOPYS0 - 初始元素列表(在复制对象的所有路径的示例列表中) GLOBALCOPYS - 输出元素列表(在复制对象的所有路径的示例列表中) •renms命令传递复制对象列表的文件,以进一步重命名.
默认情况下,临时列表以UTF-8编码创建,以通过分隔符|来使用其它编码相应的号码被分配:
0 - ANSI 1251 1 - UTF-16 LE 1200 2 - UTF-16 BE 1201 3 - 带有BOM的UTF-8 4 - 没有BOM的UTF-8
示例 global copys=%L||"%t"//0 renms=GLOBALCOPYS<t|3>||??2 global copys=%L||"%t"//0 renms=GLOBALCOPYS<t-1,-6:-9,-12,-18:-15|3>||??2
收到单个项目时,默认情况下将删除空行. 要保存空行,您需要放置符号=
示例 global sends=-1||?T|d,3,5 creat="%p"||Name.txt||content<GLOBALSENDS<t1=>>
b)获取数组中的一个元素. GLOBALNAME<Number> 与参数中指定的数字相对应的一个元素将返回到命令行. 示例 global copys=%L||"%t"//0 clint=GLOBALCOPYS<2> •复制后的copys命令(选定的对象)自动创建数组: GLOBALCOPYS0 - 初始元素列表(在复制对象的所有路径的示例列表中) GLOBALCOPYS - 输出元素列表(在复制对象的所有路径的示例列表中) •将第二个复制对象的完整路径传递给clint命令以进一步创建快捷方式.
c)获取数组的元素个数. GLOBALNAME<0>
d)其它. GLOBALNAME<c> 使用参数c,GLOBALNAME数组的数据将被写入剪贴板. 这可以在与剪贴板相关的命令中使用,并检查元素的传递. 为了验证,在测试命令后,GLOBALNAME<c>被立即写入.
示例 global copys=%L||"%t"//0 GLOBALCOPYS0<c> •复制到剪贴板后,将记录一个初始元素列表(在该示例中,复制对象的所有路径列表) global copys=%L||"%t"//0 GLOBALCOPYS<c> •复制到剪贴板后,将记录输出元素的列表(在示例中,复制对象的所有路径列表) 包含写入剪贴板的元素的选项与参数表t中的相同
收到单个项目时,默认情况下将删除空行. 要保存空行,您需要放置符号=
示例 global sends=-1||?T|d,3,5 GLOBALSENDS<c1=>
d.1)附加功能. GLOBALNAME<a> 使用参数a,GLOBALNAME数组的数据将以对话框的形式显示在表中. 这可以用来检查项目的转移. 为了验证,GLOBALNAME<a>是在测试命令后立即写的.
示例 global copys=%L||"%t"//0 GLOBALCOPYS0<a> •复制后,初始元素列表将显示在对话框中(例如,复制对象的所有路径列表) global copys=%L||"%t"//0 GLOBALCOPYS<a> •复制后,输出元素列表将显示在对话框中(例如,复制对象的所有路径列表)
显示元素的顺序与参数t的表格相同
d.2)附加功能. GLOBALNAME<b> 与GLOBALNAME<a>类似,允许显示项目的复选框.
d.3)附加功能. GLOBALNAME<e(|Column|iNameKey)> - 图标是相对于系统中的文件/文件夹类型关联设置的. GLOBALNAME<v(|Column|iNameKey)> - 图标是从文件本身设置的(exe,dll,...). GLOBALNAME<z(|Column|iNameKey)> - 图标是从NameKey模板设置的. GLOBALNAME<w(|Column|iNameKey)> -该图标是从文件和图标编号(xxx.dll,n)设置的. GLOBALNAME<g(|Column|iNameKey)> - 图标设置为注册表信息. GLOBALNAME<s(|Column|iNameKey)> - 为ini文件信息设置的图标. 与GLOBALNAME<a>相同,允许您显示项目的其它图标. 详细描述在UDF函数 _ArrayDisplay() 中
e)一行中元素列表的文件. GLOBALNAME<k(|Coding|Delimeters)> 使用参数k,GLOBALNAME数组的所有数据都将写入一个临时文件,其完整路径将被传递到命令行. 编码 - 临时文件的编码.参见参数t Delimeters是元素之间的分隔符.
示例 global copys=%L||"%t"//0 sends=GLOBALCOPYS<k> GLOBALSENDS<c1> •复制后的copys命令(所选对象)自动创建2个全局数组: GLOBALCOPYS0 - 初始元素列表(在复制对象的所有路径的示例列表中) GLOBALCOPYS - 输出元素列表(在复制对象的所有路径的示例列表中) •send命令发送复制对象列表的文件,以进一步创建一行中所有元素的列表.
如果数组的元素包含多行数据,则它们将被列组合. 例如: 有三个文件: 1. c:\Test1.txt с 的内容: 1111 2222 3333 2. c:\Test2.txt с 的内容: 4444 5555 6666 3. c:\Test3.txt с 的内容: 7777 8888 9999 以下命令将发送到缓冲区: 1111##4444##7777 2222##5555##8888 3333##6666##9999 global sends=c:\Test1.txt!!1 sends=c:\Test2.txt!!2 sends=c:\Test3.txt!!3 sends=GLOBALSENDS<k1:3|0|##>!!4 GLOBALSENDS<c4> •send命令将文件c:\Test1.txt的内容写入数组的第一个单元格 •sending命令将c:\Test2.txt的内容写入数组的第二个单元格 •send命令将c:\Test3.txt的内容写入数组的第3个单元格 •发送命令向数组的第四个单元写入3个元素(1:3)的列连接,并使用分隔符## •然后将第4个元素的内容写入剪贴板 临时文件的编码和包含元素的顺序与参数表t中的相同
g)附加功能. GLOBALNAME<$var_...> 在命令中 exect 可以创建具有数据数组的全局变量$var _... 可以在对话框中将数据的数据视为表格. 这可以用来检查项目的转移.
示例 exect=$var_a1=StringSplit('1a|2a|3a|4a|5a|6a|7a|8a|9a','|',1) GLOBALEXECT<$var_a1>
GLOBALNAME<xN> 使用参数x,当队列到达时,GLOBALNAME数组的第N个单元格的数据将直接发送,而不是任何命令的参数字符串的开头. 这可以用于查找和替换多行文本. 对于负值,从最后计数单元格. 也可以在一系列单元格中获取数据 - 参见表中的参数t的选项
参数x的所有数据都写入GLOBALLOCAL全局数组 (第一个数据写入第一个单元,第二个数据写入第二个单元,依此类推。)
示例 global sends=<inikey=5//%TCIMG_PATH%\File.ini//Online> textx=PS<"%p"//1//-1//htm>||</body>!!GLOBALSENDS<x1> •发送命令获取数组第一个单元格中的字段的内容,然后textx命令使用内容进行搜索和替换.
i) 附加功能. 要将GLOBALNAME数组元素的内容写入文件,可以使用该命令 asave
J) 附加功能. "TCIMG"有特殊的全局变量 $CmdLine和 $CmdLineRaw, 允许您查看并使用在启动时传递给TCIMG的参数命令行.
l)附加功能. 在TCIMG中,除了查看全局变量之外,还可以选择所需的单元格并将其写入GLOBALARRAY数组,请参见描述函数 _ArrayDisplay().
m)附加功能. GLOBALNAME<r> 随机移动数组元素.
没有命令的参与,可以在全局变量之间传递数据. a)全局变量的名称附加符号$ b)由于变量是数组,所以它们之间传递数据. c)你可以使用你的变量名: •名称必须以CLOBAL开头,并且具有11个字符CLOBALXXXXX •名称不能相同 现有 d)使用一维数组计算方法. e)如果该方法也用于2D二维数组,则将在注释中注明.
变量GLOBALSENDS被分配了变量GLOBALSLIST的所有值 此方法也适用于二维数组. $GLOBALSENDS=$GLOBALSLIST 分配给变量GLOBALSLIST的所有值的单元格N变量GLOBALSENDS(单元格被行的转移打破) $GLOBALSENDS[N]=$GLOBALSLIST 分配给变量GLOBALSLIST的所有值的单元格N变量GLOBALSENDS(单元格由分隔符分隔符) $GLOBALSENDS[N]=$GLOBALSLIST!!Delimeter 单元格N变量GLOBALSENDS被分配为单元格M变量GLOBALSLIST的值 $GLOBALSENDS[N]=$GLOBALSLIST[M] 变量GLOBALSENDS被分配了GLOBALSLIST单元格的值(单元格数据被换行符断开) $GLOBALSENDS=$GLOBALSLIST[M] 第一个变量的单元格 - [N]只能是一个整数. 第二个变量的单元格 - [M]可以包含用于包含与表中相同的元素的选项 的参数t
选项范例 [M] : $GLOBALSLIST[5] $GLOBALSLIST[2:-1] $GLOBALSLIST[1:8] $GLOBALSLIST[1,3:6,11:8,13:-1]
变量GLOBALSENDS以随机顺序分配变量GLOBALSLIST的所有值 $GLOBALSENDS~$GLOBALSLIST 以随机顺序分配给变量GLOBALSLIST的所有值的单元格N变量GLOBALSENDS(单元格被行的转移打破) $GLOBALSENDS[N]~$GLOBALSLIST 单元格N变量GLOBALSENDS以随机顺序分配单元格M变量GLOBALSLIST的值 $GLOBALSENDS[N]~$GLOBALSLIST[M] 变量GLOBALSENDS以随机顺序分配变量GLOBALSLIST的单元格值(单元数据被换行符断开) $GLOBALSENDS~$GLOBALSLIST[M] 第一个变量的单元格 - [N]只能是一个整数. 第二个变量的单元格 - [M]可以包含用于包含与表中相同的元素的选项 的参数t
变量GLOBALSENDS添加变量GLOBALSLIST的所有值 $GLOBALSENDS+$GLOBALSLIST GLOBALSENDS变量添加GLOBALSLIST变量的所有值,然后添加所有GLOBALSLIST1等值 $GLOBALSENDS+$GLOBALSLIST+$GLOBALSLIST1+$GLOBAL...
添加到版本 21.7
单元格数组添加 GLOBALSENDS N 单元格值 M 变量 GLOBALSLIST $GLOBALSENDS[N]+$GLOBALSLIST[M]
单元格数组添加 GLOBALSENDS N 数组 GLOBALXLIST 的所有值 (单元格迁移中断线) 在单元格值的末尾添加到 M GLOBALSLIST 变量等。 $GLOBALSENDS[N]+$GLOBALXLIST+$GLOBALSLIST[M]+$GLOBAL...
TranslateApiException: IP is over the quota : ID=1250.V2_Json.Translate.3558D0BB $GLOBALSENDS+$GLOBALSLIST[N]
使用GLOBALSLIST数组的单元格N的值将GLOBALSENDS数组添加到新单元格的末尾, 然后在最后添加GLOBALXLIST数组的所有元素,依此类推。 $GLOBALSENDS+$GLOBALSLIST[N]+$GLOBALXLIST+$GLOBAL...
在版本 22.2中添加 如果第一个变量$GLOBALNAME1不是一个数组,则声明它将合并数组
单元格 - [N] 第一个变量只能是一个整数. 单元格 - [M] 第二个和后续变量可以具有用于包括与参数t的表中相同的元素的选项
选项[M]举例: $GLOBALSLIST[-1] $GLOBALSLIST[5] $GLOBALSLIST[2:-1] $GLOBALSLIST[1:8] $GLOBALSLIST[1,3:6,11:8,13:-1]
每个单元格变量GLOBALSENDS通过分隔符Delimeter添加相应的单元格变量GLOBALSLIST的数据 $GLOBALSENDS@$GLOBALSLIST@Delimeter 重要: 变量必须相同(即,2-s的元素数必须相同).
每个单元格变量GLOBALSENDS通过分隔符Delimeter添加每个单元格变量GLOBALSLIST的数据 $GLOBALSENDS^$GLOBALSLIST^Mode^Delimeter Mode - 添加模式: 1 - 加起来 2 - 添加到最后. 3 - 添加到开头和结尾. Delimeter -[可选] - 分隔符.
重要:第一个数组将增加(如果第一个数组的大小为3,第二个数组为5,则第一个数组的大小最终将为3 * 5=15).
将copys命令传递给GLOBALSENDS数组的列表 而不是GLOBALSENDS,可以有任何具有数据的变量 global sends=-1!!-1 copys=$GLOBALSENDS||"%p"//0||upd<1> ;;复制到剪贴板路径列表上的活动面板文件 global sends=-1!!-1 copys=$GLOBALSENDS[2:-1]||"%p"//0||upd<1> ;; 从第2页的剪贴板路径列表中复制到活动面板文件
;; 将2个变量数据传递到命令的示例(活动面板的选定对象) global slist=%L wlist=%L alist=$GLOBALSLIST+$GLOBALWLIST||^^#~~ GLOBALALIST<a> GLOBALSLIST<a> GLOBALWLIST<a> ;; 将3个变量数据传递到命令的示例(活动面板的选定对象) global slist=%L wlist=%L zlist=%L alist=$GLOBALSLIST+$GLOBALWLIST+$GLOBALZLIST||^^#~~ GLOBALALIST<a> GLOBALSLIST<a> GLOBALWLIST<a> GLOBALZLIST<a>
可能的选项: ; GLOBALSENDS数据重复M次 $GLOBALSENDS&M
; 单元格N GLOBALSENDS被重复M次 $GLOBALSENDS[N]&M
;GLOBALSENDS数据被重复, 在最小值(最小值)到最大值(最大值)的范围内随机确定次数, $GLOBALSENDS&Min|Max
; 单元格N GLOBALSENDS被复制,在最小值(最小值)到最大值(最大值)的范围内随机确定次数, $GLOBALSENDS[N]&Min|Max
单元格[N]可以具有在表中包含与和相同类型的元素的选项 参数а t 选项范例 [N] : $GLOBALSLIST[5] $GLOBALSLIST[2:-1] $GLOBALSLIST[1:8] $GLOBALSLIST[1,3:6,11:8,13:-1]
在数字M,Min和Max中,可以使用数学动作. 重要提示:数组将被新数据覆盖.
可能的选项: ; 创建一维数组GLOBALXXXXX - 大小50 $GLOBALXXXXX[50]
; 创建二维数组GLOBALXXXXX - 10行,8列(从0开始的列计数) $GLOBALXXXXX[10][8]
; 您可以多次声明数组的大小,所有数据将被删除.
选项: ; 如果等号后 = 它开始写冒号 ; , 在给定的细胞被写入下一行:
; 20个一维1D GLOBALXXXXX记录列“STRING”的单元阵列 $GLOBALXXXXX[20]=;STRING
; 8在细胞中第i行第3列的二维阵列2D GLOBALXXXXX记录列“STRING” $GLOBALXXXXX[8][3]=;STRING
; 如果等号后=注册一个问号?然后在随后的线: ; 两个单引号(撇号)“”将由引号来代替 ; 两个字符~~波浪符号将由空间来代替
; 20个一维1D GLOBALXXXXX书写线的单元阵列与位“STRING WITH空间” $GLOBALXXXXX[20]=?STRING~~WITH~~SPACES
; 8在细胞中第i行第3列记录的2D线的二维阵列GLOBALXXXXX用空格“STRING” WITH“空间” $GLOBALXXXXX[8][3]=?STRING~~''WITH''~~SPACES
选项: ; 如果相同=注册问号符号之后>,返回计算数据表达式的AutoIt的结果:
; 创建阵列:在GLOBALXXXXX写入信息获得StringSplit()的函数 $GLOBALXXXXX=>StringSplit('1a|2a|3a|4a|5a|6a|7a|8a|9a','|',2)
; 三元条件:如果$ GLOBALNAME2 [0]大于$ GLOBALNAME1 [0]时,则返回一个数组GLOBALXXXXX $ GLOBALNAME2,否则 $GLOBALNAME1 $GLOBALXXXXX=>$GLOBALNAME2[0]>$GLOBALNAME1[0]?$GLOBALNAME2:$GLOBALNAME1
; 20个字节的一维1D GLOBALXXXXX记录文件大小的单元阵列 $GLOBALXXXXX[20]=>FileGetSize('C:\Test.txt') $GLOBALXXXXX[20]=>'Size:'&FileGetSize('C:\Test.txt')
; 在细胞中第i行第3列8的二维阵列2D GLOBALXXXXX记录文件属性 $GLOBALXXXXX[8][3]=>FileGetAttrib('C:\Test.txt')
上述的大多数方法都针对一维数组的操作. 许多方法适用于二维数组.
GLOBALNAME<t>,GLOBALNAME<c>,GLOBALNAME<r>,GLOBALNAME<xN>,GLOBALNAME<Number>方法: ↠ 二维数组逐行转换为一维数组(所有行单元格数据通过分隔符"一起粘合在一起"). ↠ 之后,数据传递与一维数组相同. ↠ 可以在列数据之间指定一个分隔符(默认为@TAB - tab): 为此,在字母/数字之前,* DELIMETER *标签被写入,例如:GLOBALNAME<* DELIMETER * t>
在GLOBALNAME<a>,GLOBALNAME<b>中 ↠ 二维数组不会转换为一维数组. ↠ 当所选行被传送到GLOBALARRAY时,二维数组数据通过分隔符逐行连接. ↠ 分隔符如上所述设置:GLOBALNAME<* DELIMETER * a>
使用二维数组的其它工具: ↠ anf2d - 用于创建二维数组的命令. ↠ arr2d - 命令转换二维数组. ↠ asave - 命令将二维数组的数据存储在文件中. ↠ extxt и extxs - 从文件(一个或多个)和输出值在2D阵列命令信息. ↠ infos - 命令,将信息输出到二维数组中的许多参数. ↠ info - 用于获得二维数组的信息的参数.
对于与2D 数组关联的所有变量: GLOBALNAME_ 包含: 如果是2D 数组, 则为最后一列的编号。 如果1维数组,-1
例子: "$GLOBALXXXXX[15] GLOBALXXXXX<a>" - 创建一个空数组 "$GLOBALXXXXX[15]=;строка GLOBALXXXXX<a>" - 创建一个空数组并将数据写入第15个单元格 "$GLOBALXXXXX[15] $GLOBALXXXXX[8]=;行GLOBALXXXXX <a>“ - 创建一个由15个单元格组成的空数组,并将数据写入第8个单元格 "$GLOBALXXXXX[15] $GLOBALXXXXX[8]=?строка~~с~~пробелами GLOBALXXXXX<a>" - 创建一个由15个单元组成的空数组,并将数据写入第8个单元格 "$GLOBALXXXXX[15] $GLOBALXXXXX[8]=?''строка~~с~~пробелами'' GLOBALXXXXX<a>" - 创建一个由15个单元组成的空数组,并将数据写入第8个单元格
"$GLOBALXXXXX[8][3] GLOBALXXXXX<a>" - 创建一个空的二维数组(8行,3列) "$GLOBALXXXXX[8][3]=;строка GLOBALXXXXX<a>" - 创建一个空的2D(8行,3列)数组并将数据写入最后一个单元格 "$GLOBALXXXXX[8][0]=;строка1 GLOBALXXXXX<a> $GLOBALXXXXX[7][1]=;строка2 GLOBALXXXXX<a>" - 将数据写入二维数组中的指定单元格的示例 "$GLOBALXXXXX[12][5] $GLOBALXXXXX[8][0]=;строка1 GLOBALXXXXX<a> $GLOBALXXXXX[7][1]=;строка2 GLOBALXXXXX<a>" - 将数据输入到二维数组中的单元格中的示例
"$GLOBALXXXXX[14] $GLOBALXXXXX[11]=;&do=search&subaction=search GLOBALXXXXX<a>" - 创建一个14个单元格的空数组并写入第11个单元格数据
"alist=test1@CRLFtest2@CRLFtest3 dlist=$GLOBALALIST[1:-2]+$GLOBALALIST+$GLOBALALIST[1] GLOBALDLIST<a>" - 添加单元格数组信息的示例
"eends=%UL??-1 GLOBALEENDS<a> $GLOBALXXXXX[1]=$GLOBALEENDS[1] GLOBALXXXXX<a>" - 数组之间数据传输的例子
|