附录-22 列表Lists

首页  后退  前进

获取文件/夹的名称的列表.

 

通过某些自动化任务处理文件和文件夹时,您常常需要将文件/夹对象的列表传递到执行指定操作的命令.

在Total Commander中有内部参数%L,%F,%P%S ...请参见附录7.

下面则是TCIMG的参数,允许您扩展获取列表的功能.

在大多数命令中,所有这些参数都已准备就绪.如果某个命令中没有这些参数,你可以向我报告,我将添加.

 

1. PS<>

目录对象列表   子参数是目录,例如%P,但可包含递归子目录  

2. FOLDC<>

目录内容对象列表   子参数是TC的%L参数之类的列表文件

3. FOLDM<>

所选对象列表和子文件夹中的所有对象   子参数是TC的%L参数之类的列表文件

4. LISTC<>

所选对象的列表(不包含重复项)   子参数是TC的%L参数之类的列表文件

5. LISTF<>

指定对象的列表   子参数是明确指定的文件名

6. INI<>

INI文件元素列表

7. cliplist

剪贴板项目列表

8. [tc]

Total Commander文件面板对象列表

9.TCGINFO<>

模板中的对象列表

 

down2up2 1. 目录对象列表:子参数 PS<>

子参数是目录,例如%P,但可包含递归子目录

PS<Path//Flag//Recursion//Mask//Include//Registr//Format//Lines> (推荐),或

PS<Path!!Flag!!Recursion!!Mask!!Include!!Registr!!Format!!Lines>, 其中:

 

Path - 目录路径.

Flag :

 0  - 获取文件和文件夹(默认情况下).

-1  - 获取文件夹和文件.

 1  - 只有文件.

 2  - 只有文件夹.

-2  - 只有文件夹,包括根目录.

-3  - 获取文件和文件夹,包括根目录.

-4  - 获取文件夹和文件,包括根目录.

Recursion :

 0  - 无递归 - 根目录.

-1  - 递归:深度125(默认).

 N  - 嵌套深度.

Mask - 匹配条件可以使用字符“*”和“”填充,也可以使用文件扩展名填充.

 分隔符是“|”。默认“*” - 查找所有文件.

   要搜索没有扩展名的文件,请使用掩码 ":zeroext:"

   例: *.ini|*.txt

 版本10.8可以输入“直接”匹配条件而无需转换对象名称.

   为此,您必须在匹配田间掩码之前写 && , 同时 Include=0

   例: &&.+\.(?:(?:woff|eof|tff)(?:\d+)?)

 版本25.4可以输入“直接”匹配条件而不转换对象的路径.

   为此,您必须在匹配田间之前写 ## , 同时 Include=0

   例: ##(?:.*TCIMG_)([^.\\]*)(?:\.lng)

 

Include :

0  - 找到匹配条件中指定的(默认).

1  - 找到匹配条件中指定的除外.

Registr :

0  - 不区分大小写(默认)(仅适用于拉丁字母).

1  - 考虑注册表(适用于任何字符).

Format - 返回数据中的路径:

1  - 完整路径(默认).

2  - 带扩展名的文件名.

3  - 没有扩展名的文件名.

4  - 完整路径,切断初始指定的路径目录.

Lines - 从列表中获取某些行(路径)可以有几个选项:

 N是行号.

 N1,N2,... NN  - 用逗号分隔的数字列表

 N:M是行的范围. (M-N是反向范围)

 N:M,N1:M1 ... NN,MM  - 范围号(前后)的列表.

对于负值,相对于最后一行提取行.

 

例:

"slist=PS<"%p"//1//1//*.txt//0//0//4> GLOBALSLIST<a>" - 进入当前面板和第1级txt文件的文件夹,切断当前面板的路径

 

"slist=PS<"%p"//1//1//*.txt>||formt<sort_level0> GLOBALSLIST<a>" - 获取当前面板和第1级文件夹中的txt文件,按嵌套级别按升序对路径进行排序

 

"slist=PS<%P%N//1>||%P%N!! strct="%t"||$GLOBALSLIST||progres<>||upd<3>" - 在另一个面板中创建光标下的文件夹结构,剪切根文件夹的路径名

 

"slist=PS<"\\server\shared_folder\"> GLOBALSLIST<a>" - 获取网络文件夹的文件和目录列表

 

"slist=PS<"%p"//0//0//*.part//1>||test<1r!!1B//0a!!D//0i!!(?i)desktop.ini> GLOBALSLIST<a> sends=@<xfolder=51//$GLOBALSLIST> GLOBALSENDS<a>" - 获取当前文件夹中具有最新创建日期的文件的路径,不包括具有部分扩展名,0字节文件和desktop.ini文件的未下载文件

 

"sends=PS<"%p"//0>??-1 GLOBALSENDS<a>" - 活动面板的所有元素的完整路径(带递归)

 

"sends=PS<$f213//1//0//##(?:.*TCIMG_)([^.\\]*)(?:\.lng)>??-1 GLOBALSENDS<a>" - 获取Files\Lng文件夹中的语言文件的名称

 

"sends=PS<$f213//1//0//&&(?:TCIMG_)([^.\\]*)(?:\.lng)>??-1 GLOBALSENDS<a>" - 获取Files\Lng文件夹中的语言文件的路径和名称

 

 

 


down2up2 2. 目录内容对象列表:子参数 FOLDC<>

子参数是TC的%L参数之类的列表文件

FOLDC<List/cliplist//FF//Flag//Mask//Include//Registr//Format//Lines> (建议), 或

FOLDC<List/cliplist!!FF!!Flag!!Mask!!Include!!Registr!!Format!!Lines>, 其中:

 

List - 路径\to\list\directories.txt或cliplist  - 从缓冲区得到的完整目录路径列表.

FF :

 0 - 只得到文件夹的内容.

 1 - 获取和文件(如果包含在0级列表中)

 2 - 获取文件(如果在列表0中输入并应用相同的匹配条件)

  3 - 只获取级别0列表中的文件并应用相同的匹配条件

Flag :

 0  - 文件和文件夹(默认为1级).

 1  - 仅文件.

 2  - 只有文件夹.

-1  - 所有文件全面深入.

-2  - 所有文件夹全面深入.

-3  - 所有文件和文件夹全面深入.

Mask - 匹配条件可以使用字符“*”和“”填充,也可以使用文件扩展名填充.

 分隔符是“|”。默认“*” - 查找所有文件.

   要搜索没有扩展名的文件,请使用掩码 ":zeroext:"

   例: *.ini|*.txt

 版本10.8可以输入“直接”匹配条件而无需转换对象名称.

   为此,您必须在匹配田间掩码之前写 && , 同时 Include=0

   例: &&.+\.(?:(?:woff|eof|tff)(?:\d+)?)

 版本25.4可以输入“直接”匹配条件而不转换对象的路径.

   为此,您必须在匹配田间之前写 ## , 同时 Include=0

   例: ##(?:.*TCIMG_)([^.\\]*)(?:\.lng)

Include :

 0  - 找到匹配条件中指定的(默认).

 1  - 找到匹配条件中指定的除外.

Registr :

 0  - 不区分大小写(默认)(仅适用于拉丁字母).

 1  - 考虑注册表(适用于任何字符).

Format - 返回数据中的路径:

 1  - 完整路径(默认).

 2  - 带扩展名的文件名.

 3  - 没有扩展名的文件名.

Lines - 从列表中获取某些行(路径)可以有几个选项:

 N是行号.

 N1,N2,... NN  - 用逗号分隔的数字列表

 N:M是行的范围. (M-N是反向范围)

 N:M,N1:M1 ... NN,MM  - 范围号(前后)的列表.

对于负值,相对于最后一行提取行.

 

例:

"slist=FOLDC<LISTF<\\server\shared_folder1\/\\server\shared_folder2\>//1//-3>" - 获取指定网络文件夹的列表

"sends=FOLDC<[tc=AM]//1//-1//&&.+\.(?:php.+|htm)>??-1 GLOBALSENDS<a>" - 在光标下的文件夹中获取正则表达式指定的文件列表

"sends=FOLDC<[tc=AM]//1//-1//&&.+\.(?:php.+|htm)>??0" - 从光标下的文件夹写入剪贴板,由正则表达式指定的文件列表

"sends=FOLDC<[tc=AM]//1//-1>??-1 GLOBALSENDS<a>" - 在光标下的文件夹中获取正则表达式指定的文件列表

"xlist=FOLDC<%UL//1//-1> GLOBALXLIST<a>" - 对于所选对象,获取具有递归的文件列表

"slist=FOLDC<%UL//1//-1>||test<1h!!-3!!D:\D.md5> GLOBALSLIST1<a> GLOBALSLIST2<a>" - 在所选对象中,检查所有文件的校验和,相对于md5文件中记录的金额,在GLOBALSLIST2中的GLOBALSLIST1列表中,未经检查的列表

"slist=FOLDC<%UL//1//-1>||test<1h!!-3!!D:\D.md5>||progres<> GLOBALSLIST1<a> GLOBALSLIST2<a>" - 在所选对象中,检查所有文件的校验和,相对于md5文件中记录的金额,在GLOBALSLIST2中的GLOBALSLIST1列表中,未经检查的列表

"global attrb=FOLDC<[tc=AM]//1//0//Desktop.ini>||test<0a!!D//AND//1a!!H//AND//1a!!S>||-HS!!0 textx=$GLOBALATTRB1||&&(?mi)^InfoTip=.*!!||&&(?s)^(.*)$!!$1@CRLFInfoTip=<info=o91:://>||backup<0> attrb=$GLOBALTEXTX1||+HS!!0" - 将包含Desktop.ini文件的选定目录中的注释替换为父文件夹的名称(为每个目录分配自己的名称)

"sends=FOLDC<%UL//0//-3>??-1 bends=<xfolder=41//$GLOBALSENDS> GLOBALBENDS<a>" - 获取所选文件夹中最旧对象的修改日期

"sends=FOLDC<%UL//0//-3>??-1 bends=<xfolder=41//$GLOBALSENDS> modfs=%UL||0||GLOBALBENDS<1>" - 将所选文件夹的修改日期更改为所选文件夹中最旧对象的修改日期

"sends=FOLDC<%UL//0//-3>??-1 GLOBALSENDS<a>" - 获取所选文件夹中所有对象的列表

"listx=FOLDC<%UL//1//-1//htm|html>||8||progres<> GLOBALLISTX<a>" - 在html文件的选定文件夹中,检查是否存在后台,href,src标记链接中的本地文件

 


down2up2 3. 所选对象列表和子文件夹中的所有对象:子参数 FOLDM<>

子参数是TC的%L参数之类的列表文件

FOLDM<List/cliplist//Flag//Recursion//Mask//Include//Registr//Format//Lines> (建议), 或

FOLDM<List/cliplist!!Flag!!Recursion!!Mask!!Include!!Registr!!Format!!Lines>, 其中:

 

List - %L - 路径\to\list\selected\目录 或 cliplist - 来自缓冲区的完整路径元素的列表.

Flag :

 0  - 获取文件和文件夹,包括根文件夹路径(默认情况下).

 1  - 仅文件,包括根文件夹路径.

 2  - 仅文件夹,包括根文件夹路径.

-3  - 获取文件和文件夹,不包括根文件夹路径.

-1  - 仅文件,不包括根文件夹路径.

-2  - 仅文件夹,不包括根文件夹路径.

Recursion :

 0  - 无递归 - 根目录.

-1  - 递归:深度125(默认).

 N  - 嵌套深度.

Mask - 匹配条件可以使用字符“*”和“”填充,也可以使用文件扩展名填充.

 分隔符是“|”。默认“*” - 查找所有文件.

   要搜索没有扩展名的文件,请使用掩码 ":zeroext:"

   例: *.ini|*.txt

 版本10.8可以输入“直接”匹配条件而无需转换对象名称.

   为此,您必须在匹配田间掩码之前写 && , 同时 Include=0

   例: &&.+\.(?:(?:woff|eof|tff)(?:\d+)?)

 版本25.4可以输入“直接”匹配条件而不转换对象的路径.

   为此,您必须在匹配田间之前写 ## , 同时 Include=0

   例: ##(?:.*TCIMG_)([^.\\]*)(?:\.lng)

Include :

 0  - 找到匹配条件中指定的(默认).

 1  - 找到匹配条件中指定的除外.

Registr :

 0  - 不区分大小写(默认)(仅适用于拉丁字母).

 1  - 考虑注册表(适用于任何字符).

Format - 返回数据中的路径:

 1  - 完整路径(默认).

 2  - 带扩展名的文件名.

 3  - 没有扩展名的文件名.

Lines - 从列表中获取某些行(路径)可以有几个选项:

 N是行号.

 N1,N2,... NN  - 用逗号分隔的数字列表

 N:M是行的范围. (M-N是反向范围)

 N:M,N1:M1 ... NN,MM  - 范围号(前后)的列表.

对于负值,相对于最后一行提取行.

 

 


down2up2 4. 从所选的对象列表中没有重复的对象:子参数 LISTC<>

子参数是TC的%L参数之类的列表文件

LISTC<List/cliplist//Flag//Recursion//Mask//Include//Registr//Format//Lines> (推荐),或

LISTC<List/cliplist!!Flag!!Recursion!!Mask!!Include!!Registr!!Format!!Lines>, 其中:

 

List - 路径\to\list\lists 或cliplist - 来自缓冲区的完整列表路径列表.

Flag :

 0  - 获取文件和文件夹(默认情况下).

 1  - 只有文件.

 2  - 只有文件夹.

Recursion :

 0  - 无递归 - 根目录.

-1  - 递归:深度125(默认).

 N  - 嵌套深度.

Mask - 匹配条件可以使用字符“*”和“”填充,也可以使用文件扩展名填充.

 分隔符是“|”。默认“*” - 查找所有文件.

   要搜索没有扩展名的文件,请使用掩码 ":zeroext:"

   例: *.ini|*.txt

 版本10.8可以输入“直接”匹配条件而无需转换对象名称.

   为此,您必须在匹配田间掩码之前写 && , 同时 Include=0

   例: &&.+\.(?:(?:woff|eof|tff)(?:\d+)?)

 版本25.4可以输入“直接”匹配条件而不转换对象的路径.

   为此,您必须在匹配田间之前写 ## , 同时 Include=0

   例: ##(?:.*TCIMG_)([^.\\]*)(?:\.lng)

Include :

 0  - 找到匹配条件中指定的(默认).

 1  - 找到一切,除了匹配条件中指出的一切.

Registr :

 0  - 不区分大小写(默认)(仅适用于拉丁字母).

 1  - 考虑注册表(适用于任何字符).

Format - 返回数据中的路径:

 1  - 完整路径(默认).

 2  - 带扩展名的文件名.

 3  - 没有扩展名的文件名.

Lines - 从列表中获取某些行(路径)可以有多个选项:

N是行号.

 N1,N2,... NN  - 用逗号分隔的数字列表

 N:M是行的范围. (M-N是反向范围)

 N:M,N1:M1 ... NN,MM  - 范围号(前后)的列表.

对于负值,相对于最后一行提取行.

 

 


down2up2 5. 指定对象的列表:子参数 LISTF<>

明确指定文件名

 

LISTF<Path1/Path2/... /PathN>, 其中:

 

Path1 ... PathN - 完整路径的对象名,用 / 分隔。


您也可以使用LISTF<LISTN>, 其中:

 

LIST1,LIST2或LISTN表示完全路径将从相应的键FilesList1,FilesList1或

FilesListN 在 TCIMG.ini[Setting].键中的路径用 / 分开

 

示例

FilesList1=C:\test1.txt/C:\test2.txt/C:\test3.txt

 

 


down2up2 6. INI文件元素列表:子参数 INI<>

 

INI<Flag//PathINI//NameSection//Key> (推荐),或

INI<Flag!!PathINI!!NameSection!!Key>, 其中:

 

Flag :

 1  - 带括号的所有字段名称.

 2  - 无括号的所有字段名称.

 3  - 所有字段的内容.

 4  -  NameSection字段的内容与节名称.

 5  -  NameSection字段的内容没有节名称.

 6  -  NameSection字段的键列表.

 7  -  NameSection字段的值列表.

 8  -  NameSection字段的主键值.

 9  -  Key Key的名称及其NameSection字段的值(Key=Value).

10  - 没有节名称的所有字段的内容.

11  - 所有字段的内容(命令发送的数组的单独单元格中的每个字段).

12  - 没有节名的所有字段的内容(命令发送的数组的单独单元格中的每个字段).

 

这些字段相对于其在INI文件中的位置返回:

13  - 指定字段的内容.

14  - 没有章节名称的指定章节的内容.

15  - 指定字段的内容(命令发送的数组的单独单元格中的每个字段).

16  - 指定字段的内容,不包含字段名称(命令发送的数组的单独单元格中的每个字段).

 

对于给定的名称返回字段:

 17  - 指定字段的内容.

 18  - 没有章节名称的指定字段的内容.

 19  - 指定字段的内容(命令发送的数组的单独单元格中的每个字段).

 20  - 指定字段的内容,不包含字段名称(命令发送的数组的单独单元格中的每个字段).

 

 21  - 指定键及其值的列表(Key=Value)(命令发送的数组的单独单元格中的每一对).

 22  - 给定键(值)的值列表(命令发送的数组的单独单元格中的每个值).

 

 23 - 所有字段的内容(逐行)

 

 24, 25 - 所有部分的内容. Flag//PathINI//RegExp//Search//Replace

 

RegExp - 正则表达式:

 (如果字符串以??键开头,则正则表达式取自Key Key的[FormatUser]部分的TCIMG.ini):

 - Flag=24 - 如果没有条目,则打开该部分.

 - Flag=25 - 如果有条目,则包括部分.

Search - [可选] - 正则表达式在包含的部分中搜索.

 ??Key1,Key2,...KeyN - 之后?您可以从[FormatUser]部分注册TCIMG.ini中逗号分隔的一个或多个键

Replace - [可选] - 替换模式.

 

 

PathINI - INI文件的路径.

NameSection - 该字段的名称与Flag=4及更高版本一起使用.

Key - 关键名称,与Flag=8,Flag=9一起使用.

 

当Flag=21和Flag=22时,通过分隔符|写入键名称(Key1|Key2|...|KeyN)

 

当Flag=13,...,Flag=20时,NameSection用于通过分隔符|指定段的名称

 

在Key之后使用Flag=8和Flag=9,您可以指定在未找到指定键时将返回的值(Key//Default)

 

 

Flag 具有可选的可选参数 Flag|Comm|Mode, 其中:

  Comm - 删除评论模式:

    0 - 不删除评论(默认).

    1 - 删除所有浏览评论;评论

    2 - 删除视图行开头处的注释;评论

    3 - 删除视图行首的特殊注释 /*@评论 - 代码 html@*/

  Mode - 删除空行模式:

    0 - 不删除空白行(默认).

    1 - 删除空白行.

 

示例:

"exect=$var_s=##$INI<8//$f302//Configuration//SortUpper//zzz>||_ViewValues('$var_s')" - 获取指定键的值,如果找不到键,则返回“zzz”

"exect=$var_s=##$INI<8!!$f302!!Configuration!!SortUpper>||$var_s=$var_s=3?1:($var_s+2) tcimg=$cm486 buttn=TDLGCONFIGALL||+tcTCSCP8|$p0|*c$var_s!!1|*x||+tcTCSCP23||+tcTCSCP20" - 循环切换排序方法

"anf2d=INI<5|2//$f252//Setting>||2||([^=]+)=(.*)||begin<0> GLOBALANF2D<a> arr2d=$GLOBALANF2D||42|1 GLOBALARR2D<a>" - 按升序对键值进行排序

"anf2d=INI<5|2//$f252//Setting>||2||([^=]+)=(.*)||begin<0> GLOBALANF2D<a> arr2d=$GLOBALANF2D||43|1 GLOBALARR2D<a>" - 按字符串的长度以降序对段键值进行排序

 

"slist=INI<24//%P%N//(Страна\:~~Франция)> GLOBALSLIST<a>" - 获取光标下INI文件各部分的内容,其中与指定的正则表达式不匹配

"slist=INI<25//%P%N//(Страна\:~~Франция)> GLOBALSLIST<a>" - 获取光标下INI文件各部分的内容,其中与指定的正则表达式匹配

 

"sends=<inikey=24//%%TCIMG_PATH%%\TCIMG.ini//(?m)^(BkColor\=)>??-1 GLOBALSENDS<a>" - 从TCIMG.ini获取节的内容(带标题),它们不包含指定的正则表达式

"sends=<inikey=24//%%TCIMG_PATH%%\TCIMG.ini//(?m)^(BkColor\=)//\A([^\r\n]+)>??-1 GLOBALSENDS<a>" - 从TCIMG.ini获取没有指定正则表达式的节的名称

"sends=<inikey=24//%%TCIMG_PATH%%\TCIMG.ini//(?m)^(BkColor\=)//\A([^\r\n]+)//>??-1 GLOBALSENDS<a>" - 从TCIMG.ini获取节的内容(没有标题),其中没有指定的正则表达式

 

"sends=<inikey=25//%%TCIMG_PATH%%\TCIMG.ini//(?m)^(BkColor\=)>??-1 GLOBALSENDS<a>" - 从TCIMG.ini获取包含指定正则表达式的节(带标题)的内容

"sends=<inikey=25//%%TCIMG_PATH%%\TCIMG.ini//(?m)^(BkColor\=)//\A([^\r\n]+)>??-1 GLOBALSENDS<a>" - 从TCIMG.ini获取具有指定正则表达式的节的名称

"sends=<inikey=25//%%TCIMG_PATH%%\TCIMG.ini//(?m)^(BkColor\=)//\A([^\r\n]+)//>??-1 GLOBALSENDS<a>" - 来自TCIMG.ini获取包含给定正则表达式的节(没有标题)的内容

 

"sends=<inikey=24//%%TCIMG_PATH%%\TCIMG.ini//(?m)^([^=]+\=)//\A([^\r\n]+)>??-1 GLOBALSENDS<a>" - 从TCIMG.ini获取有键的部分的名称

"sends=<inikey=24//%%TCIMG_PATH%%\TCIMG.ini//(?s)\A([^\r\n]+\]).+>??-1 GLOBALSENDS<a>" - 来自TCIMG.ini获取没有信息的部分的名称

 

 

 


down2up2 7. 剪贴板项目列表:子参数 cliplist

 

没有子参数

 

 


补充:

 

来自版本7.5的参数 PS<>, FOLDC<>, FOLDM<>, LISTC<>, LISTF<>, INI<>, [tc], TCGINFO<>连接在一起并具有处理优先级:

 

1) INI<>

2) [tc] 见 附录12

3) TCGINFO<> 见附录31

4) LISTF<>

5) PS<>

6) FOLDC<>

7) FOLDM<>

8) LISTC<>

9) cliplist

 

这允许第一个参数在以下内容中处理:

 

示例

lists=FOLDC<LISTF<%P%N\11\/%P%N\22\/%P%N\33\>//1//-4>||##path<32>

即首先处理LISTF<...>参数,创建初始列表并将其传递给FOLDC<>参数.

 

示例

copys=FOLDC<PS<%P%N//2//0>//1//1>||%P%N//0||##<info=f61::>

即首先处理PS<...>参数,创建初始列表并将其传递给参数FOLDC<>

up2up2

tcimage © Аверин Андрей для Total Commander Image Averin-And@yandex.ru