listx

首页  后退  前进

listx
down2

接收并将各种信息传递给其它命令.

 

listx=List||Mode, ||<info>,||best<>, , ||<dellist>, ||sagent<>, ||sproxy<>

 

参数:


1-强制参数.

List

对象列表. 可能的参数:

 • %L - 所选对象的列表.

 • List - 路径到完整对象路径列表的文件 %P%N附录7.

 • cliplist - 从剪贴板列出完整的对象路径.

 • PS<> - 目录对象列表. 见附录22.

 • FOLDC<> - 目录内容对象列表. 见附录22.

 • FOLDM<> - 所选对象的列表 和子文件夹中的所有对象. 见附录22.

 • LISTF<> - 指定对象的列表. 见附录22.

 • [tc] - 不同的文件面板列表 ([tc=TL]) 见附录12

 • GLOBALNAME - 全局变量传输的数据. 见附录23


2-强制参数.

Mode

模式

1  - 通过扩展获取对象组.全局变量数据:

   GLOBALLISTX0  - 对象初始化方式列表.

   GLOBALLISTX  - 扩展名列表(文件夹为"\").

   GLOBALLISTX1  - 对象路径组列表.在每个单元格中,具有相同扩展名的对象的路径.


2  - 检查对象的路径是否存在.全局变量数据:

   GLOBALLISTX0  - 对象初始化方式列表.

   GLOBALLISTX  - 存在的对象的路径列表.

   GLOBALLISTX1  - 不存在的对象路径列表.

   GLOBALLISTX2  - 存在的文件路径列表.

   GLOBALLISTX3  - 存在的目录路径列表.


3 - 获取相对于给定信息的对象组.

  List||3||SeriesParam||Groups

    SeriesParam - 一系列获取信息的参数, 关于哪些小组将被获取.

       一系列参数与参数相似 见附录24 (参数之间的分隔符 ;; )

       如果要在参数中使用当前列表对象的路径,请使用两个冒号 ::

    Groups - 组输出模式:

       0  - 按升序排列.

       1  - 排序降序.

       2  - 按数字增加排序.

       3  - 按数字降序排列.

       4  - 通过在对象路径的名称的初始位数的数值的增加.

       5  - 通过在对象的最终数字数值增加命名方式.

       6  - 通过降位数字的对象路径的主要名.

       7  - 由降数值有限数量的方式,对象的名称.

 

       @  - 没有排序.

       @|Name1|Name2|Name3|...|NameN  - 具有给定的组名.

   全局变量数据:

       GLOBALLISTX0  - 对象初始化方式列表.

       GLOBALLISTX  - 组名列表.

       GLOBALLISTX1  - 对象路径组列表.


4 -通过嵌套级别获取对象组.

  List||4||PathFolder(||Flag||RegExp)

    PathFolder - 到达目录的路径,对象将按级别分配.

    Flag [可选]

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

       1 - 文件夹中.

       2 - 文件.

    RegExp [可选]

       一个正则表达式,允许您选择所需的对象(默认情况下,所有对象).

     全局变量数据:

       GLOBALLISTX0 - 对象初始路径列表.

       GLOBALLISTX - 按层次列出对象.在对象路径的每个单元格中:

         第一个单元格 - 第一级的路径.

         第二个单元格 - 第二级的路径.

         第N个单元 -  N级路径(N最多可达124个).

         在不包括在组中的对象的路径的第125个单元格中.

         在第0个单元格中,最大级别数.

       GLOBALLISTX1  - 第1级的对象列表.

       GLOBALLISTX2  - 第二级对象的列表.

       GLOBALLISTXN  - 第N级的对象列表(最多124个).

       GLOBALLISTX125  - 未包含在组中的对象的对象列表.

       GLOBALLISTX126  - 具有分布结果的二维数组.


5 - 从树命令(cmd.exe)创建的结构中获取路径列表

  List||5(||NewPath||Flag)

    NewPath [可选] - 一个新的路径,插入到变量3,4, 5.

       # - 规定如果不需要新路径.

    Flag [可选]

     0  - 检查初始路径的真实存在(默认情况下).

       1  - 不检查初始路径的真实存在.

     全局变量数据:

       GLOBALLISTX0  - 初始结构列表.

       GLOBALLISTX  - 所有对象的完整路径列表.

       GLOBALLISTX1  - 完整文件路径列表.

       GLOBALLISTX2  - 完整的文件夹路径列表.

       GLOBALLISTX3  - 所有对象的路径列表(没有结构的初始路径或添加的路径 NewPath).

       GLOBALLISTX4 - 文件路径列表(没有结构的初始路径或添加 NewPath).

       GLOBALLISTX5 - 文件夹路径列表(没有结构的初始路径或添加NewPath).

       GLOBALLISTX6 - 在第一个单元格中的结构的初始路径.

       GLOBALLISTX7 - 完整对象路径列表(不包含带有附件的文件夹的路径)。

       GLOBALLISTX8 - 完整文件夹路径列表(带有附件的文件夹路径被排除在外)。

7 -获取相对于给定目录的相同名称的对象列表.

  List||7||Path1||Path2

      List -文件名可以在列表中传输(然后Path1未指定).

     Path1 - 相对于源列表的目录.

     Path2 - 目标目录,在该目录中搜索同名的对象.

     全局变量数据:

       GLOBALLISTX0 - 对象的初始路径列表.

       GLOBALLISTX - 相同名称的初始对象路径列表.

       GLOBALLISTX1 - 具有相同名称的对象路径列表.

       GLOBALLISTX2 - 没有同名对象的初始对象列表.

        GLOBALLISTX3 - 对于没有找到同名对象的初始路径,不存在目标路径列表.

       GLOBALLISTX4 - 通过参数best<>的条件的对象的初始路径名列表。


8 - 从标签“background”,“href”,“src”中的html文件中获取不存在的本地链接.

   List||8

     全局变量数据:

       GLOBALLISTX0 - 初始对象路径列表.

       GLOBALLISTX - 不存在的本地链接列表.

    加工原理:

       1. 所有备注都将被删除。 <!-- ... -->.

       2. 删除了复合标签“background”,“href”,“src”(位于脚本中).

       3. 删除所有Internet链接。.

       4. 删除了“垃圾”.

       5. 检索本地链接.

       6. 解码URL链接,并通过_PathFull()函数检查UDF路径.

       (这是一种测试模式,可以更改/添加以准确获取本地链接).

       progres<>参数可用于显示扫描进度。

例:

"listx=%UL||8||progres<> GLOBALLISTX<a>" - 在选定的html文件中检查是否存在背景,href,src标记链接中的本地文件

"listx=@%P%N||8 GLOBALLISTX<a>" - 在光标下的html文件中检查是否存在标签background,href,src链接中的本地文件

.

 


9 - 从第一级中的N个指定对象获取目录列表.

   ListFolder||9||Count||Mask||TestParams

     ListFolder - 目录路径列表.

     Count -收到的物品数量.

     Mask - 掩码可以使用字符“*”和“?填充,也可以使用文件扩展名填充.

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

        示例:*.ini|*.txt

     如果拼写为“d”,则搜索目录.

     TestParams [可选] - 这是一个或一系列参数,与附录16相同,其中删除了test<>标签

.      全局变量数据:

       GLOBALLISTX0 - 初始目录路径列表.

       GLOBALLISTX - 找到的所有对象的列表.

       GLOBALLISTX1 - 指定目录的每个单元格对应于找到的路径,通过换行符@CRLF写入.

例:

"listx=%UL||9||2||d GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a>" - 在每个选定的目录中找到2个文件夹

"listx=%UL||9||3||* GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a>" - 在每个选定的目录中找到3个文件

"listx=%UL||9||3||*.txt|*.ini GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a>" - 在每个选定的目录中找到3种类型的指定文件

"listx=%UL||9||3||*.txt|*.ini||0r!!48B GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a>" - 在每个选定目录中找到3种类型的小于48字节的指定文件

 


10 - 使用参数best<>比较2个指定对象列表.

   List1||10||List2||best<...>

    List1 - 对象的路径列表№1.

    List2 - 对象的路径列表№2.

       列表中的路径数应该相等.

     全局变量数据:

       GLOBALLISTX0 - List1的起始路径列表.

       GLOBALLISTX1 - List2的起始路径列表.

       GLOBALLISTX2 - List1传递条件的路径列表.

       GLOBALLISTX3 - List2列表路径未通过条件.

       GLOBALLISTX4 - 列表List1的路径列表未通过条件.

       GLOBALLISTX5 - List2传递条件的路径列表.

例:

"listx=D:\List1.txt||10||D:\List2.txt||best<:1:*:2:??0o1::> GLOBALLISTX0<a> GLOBALLISTX1<a> GLOBALLISTX2<a> GLOBALLISTX3<a> GLOBALLISTX4<a> GLOBALLISTX5<a>" - 检查2个对象路径列表,获取大小不相等的对象列表


其它参数:

<info>

获取各种信息. 见附录10.

best<>

使用info参数比较2个对象.

参数 best<Path1*Path2??NumberInfo1??NumberInfo2??...??NumberInfoN>, 其中:

Path1 - 对象的第一个路径(主要).

Path2 - 第二个对象路径.

   插入的不是Path1和Path2标签 :1::2:,它将被命令中的第一个和第二个对象替换.

Number - 返回主对象:

   0 - 如果2个对象的值不相等.

   1 - 如果2个对象的值相等.

   2 - 如果第一个对象的值大于第二个.

   3 - 如果第一个对象的值小于第二个.

   4 - 如果第一个对象的值大于或等于第二个.

   5 - 如果第一个对象的值小于或等于第二个.

   6 - 如果2个对象的值相等(对于字符串数据,区分大小写).

Info - 参数字符串与附录10相同.

   在Info中而不是写入对象的路径 ::

--------------------------------------------------------------------------------

 NumberInfo条件可以通过分隔符拼写多次 ??

 默认情况下,根据原则检查几个条件 AND

 要通过分隔符在NumberInfo之前和/或之间设置其他条件?所需的比较是ORNOTAND

 对于更复杂的条件,您可以使用括号.


从互联网读取数据时的附加参数:

<dellist>

从文件中查找和删除.

img+ 描述

参数 <dellist=FilePath|Mode|Registr|Flag> , 其中:

FilePath - 路径到文件列表 (强制参数,其它可选).

    В списке должны быть прописаны строки (фразы) для поиска.

    Список может быть так же передан через глобальный 数组 $GLOBALNAME

Mode -从文本删除模式:

   1  - 删除文件中规定的所有短语(默认情况下).

 

   2  - 删除与文件中写入行匹配的行.

   3  - 删除文件中规定的短语的行.

   4  - 删除行,其中开头有文件中规定的短语.

   5  - 删除行,其中最后有一个从文件中规定的短语.

 

   6  - 删除与文件中的行不匹配的行.

   7  - 删除无短语在文件中写入的行.

   8  - 删除文件中规定的短语开头无的行.

   9  - 从文件中规定的无短语的末尾删除行.

Registr - 注册:

   0  - 删除没有case(默认).

   1  - 区分大小写.

Flag

   0  - 如果删除列表为空,则返回源文本(默认值).

   1  - 如果删除列表为空,则返回"空"字符串.

sagent<>

安装用户代理.

img+  描述

参数sagent<Key>设置要求请求发送的User-Agent(客户端程序标识符),其中:

Key - 来自"HttpSetUserAgent"字段的TCIMG.ini的Key名称,其中注册了User-Agent字符串.


sagent<@Key|Count> 允许您随机更改User-Agent'a, 其中:

Key - 通过分隔符||写入用户代理行的键的名称

Count - User-Agent更改的链接数


sagent<#Key1|Count1,Key2|Count2,...,KeyN|CountN> 允许您更改User-Agent'a, 其中:

Key1|Count1 - 将User-Agent字符串注册的Key1设置为指定的数字Count1次,

 那么数据取自Key2|Count2,...,KeyN|CountN,然后循环中.

sproxy<>

设置代理间.

img+  描述

参数 sproxy<Flag|Mode|Proxy:Port|UserName|Password> 允许您设置代理间用于FTP或HTTP访问, 其中:

Flag:

  0  - 设置FTP代理进行访问

    1  - 设置HTTP访问的代理

Mode - 使用代理模式:

   0  - 使用代理的当前Internet Explorer设置(默认情况下).

   1  - 不使用代理(直接访问).

   2  - 使用指定的代理.

Proxy:Port

  [可选] 地址和端口的代理使用.见下面的注释.

UserName

  [可选] 如果需要,代理的用户名.

Password

  [可选] 如果需要,代理的密码.


sproxy<@Flag|Mode|ListProxy*Count> 允许您随机更改代理.

sproxy<#Flag|Mode|ListProxy*Count> 它允许更改代理.

 

Count -[可选] 代理更改的链接数(默认值为1).

ListProxy - 代理列表,文件列表的路径 с:\proxy.txt

 ‣列表可以通过全局变量$GLOBALNAME参见附录23

   ‣在列表的每一行可以写:

 

示例

Proxy

Proxy:Port

Proxy:Port,UserName,Password

Proxy:Port|UserName|Password

 

127.0.0.1

127.0.0.1:9090

127.0.0.1:9050,login1,Qh23qw

127.0.0.1:9080|login2|8t9efgdf

备注

此参数应设置为Internet Explorer 3或更高版本.

 仅支持CERN代理服务器.

 通常,代理服务器由Web地址和端口号组成.

 大多数提供商使用端口号8080.

 如果您的代理服务器是www.proxy.com和端口8080,那么您应该使用它来设置代理:

  www.proxy.com:8080

 大多数代理服务器不需要用户名和密码.

 当使用Mode=0时,您可以指定用户名和密码,并将它们与Internet Explorer代理配置一起使用.

备注

可以在字符串里使用的其它字符:"@CR" - 回车符,Chr(13),"@LF" - 换行字符,Chr(10),"@CRLF"= @CR&@LF,"@ TAB" - 符号Tab,Chr(9).

 

如果在命令和参数中需要引号,需使用两个单引号(撇号) ''

如果命令需要一个空格,则使用两个波浪符号~~

 

该命令能够通过创建的全局变量将信息传递到其它命令.见附录23号

变量名称

描述

GLOBALLISTX

GLOBALLISTX0

GLOBALLISTX1

GLOBALLISTX2

...

GLOBALLISTXN

在命令中描述传递给变量的数据 listx

 

转换二维数组的命令 arr2d

要保存二维数组,请使用命令 asave

参见:

anf2d, arr2d, asave, cmd64, cmdcm, cname, cycles, dilog, dubls, dumpxx, envgt, global, hotkiy, ifthen, inbox, macro, noglob, pause, pressy, scrpt, sends, slects, slist, swcmd, swcths, tempxx, timess, zmenu, zmenz

例子

 

itray=3 stext=FOLDC<%L//1//-1//*.css>||x||?Ftag458||formt<1>||xline<^^¤;;^^@@o75::;;?F63,fun_path>||clip<> listx=cliplist||2 xlist=$GLOBALLISTX1 wlist=$GLOBALLISTX GLOBALXLIST<a> GLOBALWLIST<a> ;; 从所选目录,图像路径(jpg,png,gif)中的css文件中提取到剪贴板,并根据每个css +文件的位置将绝对路径替换为图像(../)的相对路径,检查存在路径并输出结果 - GLOBALXLIST  - 不存在的路径和GLOBALWLIST  - 到真实文件的路径

 

listx=%L||1 $GLOBALEXTXX=$GLOBALLISTX1[1] GLOBALEXTXX<a> ;; 从变量GLOBALEXTXX中的选定对象获取第一个组

 

listx=%L||1 <FOR> 1 <TO> GLOBALLISTX<0> $GLOBALEXTXX=$GLOBALLISTX1[:INDEX:] GLOBALEXTXX<a> <NEXT> ;; 通过扩展从所选组对象中获取循环中的处理

 

listx=%L||1 GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> ;; 通过全局变量中的扩展获取所选对象的组

 

listx=%L||3||##@@i1::;;?Ffun_numrange4||@|1281|1280|1279 GLOBALLISTX<a> GLOBALLISTX1<a> ;; 在具有给定位置的单元格的全局变量中获取宽度(大于1280,小于1280,1280)的所选图像组(即使该组中的文件无)

 

listx=%L||3||##@@i1::;;?Ffun_numrange4||3 GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> ;; 在全局变量中获取宽度(超过1280,小于1280,1280)的所选图像组

 

listx=%L||3||##@@i1::||@ GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> ;; 在全局变量中获取所选图像的宽度组(不排序)

 

listx=%L||3||##@@i1::||2 GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> ;; 在全局变量中获取宽度选定图像的组

 

listx=%P%N||5 GLOBALLISTX<a> ;; 从光标下的结构获取对象的完整路径(在树命令中创建)

 

listx=%P%N||5||"%T" copys=$GLOBALLISTX||listz<$GLOBALLISTX3>//4 ;; 将光标下的文件结构(在树命令中创建)复制文件和文件夹到对侧面板,保留文件夹结构(检查:如果对象名称匹配则跳过)

 

listx=%P%N||5||"%T" copys=$GLOBALLISTX1||listz<$GLOBALLISTX4> ;; 将光标下的文件结构(在树命令中创建)复制到另一个保留文件夹结构的面板上

 

listx=%P%N||5||"%T" GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> GLOBALLISTX2<a> GLOBALLISTX3<a> GLOBALLISTX4<a> GLOBALLISTX5<a> GLOBALLISTX6<a> ;; 从光标下的结构获取各种对象路径列表(在树命令中创建)

 

listx=%P%N||5||#||1 GLOBALLISTX<a> ;; 从游标下的结构获取完整的对象路径(在树命令中创建)(不检查结构的初始路径的真实存在)

 

listx=C:\Tree.txt||5 GLOBALLISTX<a> ;; 从结构c:\Tree.txt(在树命令中创建)获取对象的完整路径

 

listx=C:\Tree.txt||5 GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> GLOBALLISTX2<a> GLOBALLISTX3<a> GLOBALLISTX4<a> GLOBALLISTX5<a> GLOBALLISTX6<a> ;; 从结构c:\Tree.txt(在树命令中创建)获取各种对象的路径

 

listx=C:\Tree.txt||5||E:\TREE\ copys=$GLOBALLISTX1||listz<$GLOBALLISTX4> ;; 在新径E\Tree.txt(在树命令创建):将文件从C的结构复制\TREE\保存的文件夹结构

 

listx=C:\Tree.txt||5||E:\TREE\ GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> GLOBALLISTX2<a> GLOBALLISTX3<a> GLOBALLISTX4<a> GLOBALLISTX5<a> GLOBALLISTX6<a> ;; 从c:\Tree.txt结构(在树命令中创建)检索各种对象路径(添加一个新的E:\TREE\路径到全局变量3,4,5)

 

listx=cliplist||2 GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> ;; 检查剪贴板中的路径列表是否存在,并将结果存入全局变量中

 

listx=cliplist||5 GLOBALLISTX<a> ;; 从剪贴板的结构(在树命令中创建)获得对象的完整路径

 

listx=PS<"%p"//0>||4||"%p" GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> GLOBALLISTX2<a> GLOBALLISTX3<a> GLOBALLISTX4<a> GLOBALLISTX5<a> GLOBALLISTX125<a> ;; 在当前目录中,找到所有文件和文件夹,通过嵌套级别相对于该目录进行拆分,并将结果写入全局变量

 

listx=PS<"%p"//0>||4||"%p" GLOBALLISTX126<a> ;; 在当前目录中,查找所有文件和文件夹,通过嵌套级别相对于此目录进行拆分,并将结果写入二维数组

 

listx=PS<"%p"//0>||4||"%p"||1 GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> GLOBALLISTX2<a> GLOBALLISTX3<a> ;; 在当前目录中,查找所有文件和文件夹,通过嵌套级别相对于此目录进行分解,并将结果写入全局变量(列表仅包含文件夹)

 

listx=PS<"%p"//0>||4||"%p"||2||(.*\.txt) GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> GLOBALLISTX2<a> GLOBALLISTX3<a> ;; 在当前目录中查找所有文件和文件夹,通过嵌套级别分解相对于此目录并将结果写入全局变量(该列表仅包括TXT文件)

 

listx=PS<"%p"//0>||4||<info=o79"%p"//> GLOBALLISTX<a> GLOBALLISTX126<a> ;; 在当前目录中,查找所有文件和文件夹,通过嵌套级别相对于磁盘根(c:\)将其拆分,并将结果写入全局数组

 

listx=PS<"%p"//1//0>||1 <FOR> 1 <TO> GLOBALLISTX<0> $GLOBALEXTXX=$GLOBALLISTX1[:INDEX:] GLOBALEXTXX<a> <NEXT> ;;在活动面板文件中获取并在扩展中分组以在一个循环中进行处理

 

listx=PS<"%p"//1//0>||1 GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> ;; 获取活动的面板文件,并将其拆分为全局变量的扩展名

 

sends=%P%N??-1||?D866 listx=$GLOBALSENDS||5||"%T" copys=$GLOBALLISTX||listz<$GLOBALLISTX3>//4 ;; 将光标下的文件结构(树形命令中创建)的文件和文件夹复制到对侧面板,保存文件夹结构(检查:如果对象名称匹配,则跳过)(在866编码中预先转换列表)

 

sends=%P%N??-1||?D866 listx=$GLOBALSENDS||5||#||1 GLOBALLISTX<a> ;; 从游标结构中获取对象的完整路径(在树命令中创建)(不检查结构的初始路径的实际存在)(在编码866中预转换列表)

 

sends=-1!!-1 listx=$GLOBALSENDS||2 GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a> ;; 检查剪贴板中的路径列表是否存在,并将结果存入全局变量中

 

"listx=%L||7||"%p"||"%t" GLOBALLISTX0<a> GLOBALLISTX<a> GLOBALLISTX1<a>" - 从对侧面板的相同名称对象的选定对象路径中获取

"listx=%L||7||"%p"||"%t" GLOBALLISTX2<a> GLOBALLISTX3<a>" - 从所选对象获取不存在的同名对象的路径

 

"listx=%L||7||"%p"||"%t"||best<:1:*:2:??0o1::> GLOBALLISTX4<a>" - 从所选文件的大小不一致的路径到对侧面板的相同文件

"listx=%L||7||"%p"||"%t"||best<:1:*:2:??1o1::> GLOBALLISTX4<a>" - 从大小相等的选定文件中获取路径到对侧面板的相同文件

"listx=%L||7||"%p"||"%t"||best<:1:*:2:??2o1::> GLOBALLISTX4<a>" - 从选定文件中获取大于相同名称的同一面板文件的路径

"listx=%L||7||"%p"||"%t"||best<:1:*:2:??3o1::> GLOBALLISTX4<a>" - 从选定文件中获取小于同名同名面板文件的路径

 

"listx=%L||7||"%p"||"%t"||best<:1:*:2:??2o1::??1o5::> GLOBALLISTX4<a>" - 从所选文件中获取路径,这些文件的大小较小,并且与其他面板的相同文件的属性相同

"listx=%L||7||"%p"||"%t"||best<:1:*:2:??2o1::??OR??1o5::> GLOBALLISTX4<a>" - 从其他面板的相同文件的属性中选择小于或等于所选文件的路径

 

"listx=%L||3||&&^.*\\(.*)-.*$!!\1||5 GLOBALLISTX<a> GLOBALLISTX1<a>" - 得到一组文件,BBBB-000.ext的选择AAA-000.ext型的,分类通过升序有限数代表数值

 

 

 

up2

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