带文件掩码的WinSCP ls命令正在记录所有文件

时间:2015-01-23 16:26:29

标签: scripting winscp

我试图通过WinSCP脚本做一个简单的ls。 FTP上有许多文件(格式为TOE#####.###,其中#为数字),我只想要文件夹TOE54281中以TOEFL开头的文件。

我已经尝试了ls TOEFL/TOE54281*ls TOEFL/TOE54281*.???ls TOEFL/*54281*(和其他替代方案),但所有文件内容都给了我,而不仅仅是那些以我需要的方式开头的内容。< / p>

有什么建议吗?

  

2015-01-23 13:23:43.878脚本:ls TOEFL / TOE52481 *
  。 2015-01-23 13:23:43.878列出目录“/ TOEFL”。
  2015-01-23 13:23:43.878类型:SSH_FXP_OPENDIR,尺寸:15,编号:267
  &LT; 2015-01-23 13:23:43.910类型:SSH_FXP_HANDLE,尺寸:13,编号:267
  2015-01-23 13:23:43.910类型:SSH_FXP_READDIR,尺寸:13,编号:524
  ...
  &LT; 2015-01-23 13:23:50.618类型:SSH_FXP_STATUS,尺寸:28,编号:58892
  &LT; 2015-01-23 13:23:50.618状态代码:1
  2015-01-23 13:23:50.618类型:SSH_FXP_CLOSE,大小:13,编号:59140
  。 2015-01-23 13:23:50.634 .; d; 603136; 2015-01-23T16:41:21.000Z;“4433”[4433];“15002”[15002]; rwxr-xr-x; 2
  。 2015-01-23 13:23:50.634 ..; d; 1024; 2014-12-06T13:26:58.000Z;“0”[0];“0”[0]; rwxr-xr-x; 0 <登记/>   。 2015-01-23 13:23:50.634 TOE58183.TST; - ; 1493; 2014-11-18T16:20:02.000Z;“4433”[4433];“4433”[4433]; rw-rw-r-- 0
  。 2015-01-23 13:23:50.634 TOR84390.099; - ; 5409; 2014-10-09T14:12:15.000Z;“4433”[4433];“4433”[4433]; rw-rw-r-- 0
  。 2015-01-23 13:23:50.634 TOE84390.TST; - ; 3792; 2014-10-06T20:31:30.000Z;“4433”[4433];“4433”[4433]; rw-rw-r-- 0
  。 2015-01-23 13:23:50.634 TOE50072.TST; - ; 3792; 2014-10-06T20:37:39.000Z;“4433”[4433];“4433”[4433]; rw-rw-r-- 0
  ...
  。 2015-01-23 13:24:07.389 TOE98410.023; - ; 819; 2014-12-05T16:16:27.000Z;“4433”[4433];“4433”[4433]; rw-rw-r-- 0
  。 2015-01-23 13:24:07.389 TOE98600.023; - ; 1769; 2014-12-05T16:16:28.000Z;“4433”[4433];“4433”[4433]; rw-rw-r-- 0
  。 2015-01-23 13:24:07.389 TOE99430.023; - ; 998244; 2014-12-05T16:16:28.000Z;“4433”[4433];“4433”[4433]; rw-rw-r-- 0
  。 2015-01-23 13:24:07.389 TOE99640.023; - ; 3756; 2014-12-05T16:16:29.000Z;“4433”[4433];“4433”[4433]; rw-rw-r-- 0
  。 2015-01-23 13:24:07.389 TOE99881.023; - ; 3890; 2014-12-05T16:16:29.000Z;“4433”[4433];“4433”[4433]; rw-rw-r-- 0
  &LT; 2015-01-23 13:24:07.545脚本:-rw-rw-r-- 1 4433 4433 415685 10月10日11:55:26 2014 TOE52481.015
  &LT; 2015-01-23 13:24:07.545脚本:-rw-rw-r-- 1 4433 4433 393699 10月17日9:39:41 TOE52481.016
  &LT; 2015-01-23 13:24:07.545脚本:-rw-rw-r-- 1 4433 4433 402250 Sep 26 10:13:23 2014 TOE52481.013
  &LT; 2015-01-23 13:24:07.545脚本:-rw-rw-r-- 1 4433 4433 559835 10月24日10:28:07 2014 TOE52481.017
  &LT; 2015-01-23 13:24:07.545脚本:-rw-rw-r-- 1 4433 4433 605034 10月31日11:24:01 2014 TOE52481.018

1 个答案:

答案 0 :(得分:0)

你的前两个面具是正确的:

winscp> ls TOEFL
D---------   0                           0              ..
-rw-r--r--   0 user1    users           10 Jan 23 17:58:07 2015 TOE99999.222
-rw-r--r--   0 user1    users           10 Jan 23 17:58:07 2015 TOE54281.111
-rw-r--r--   0 user1    users           10 Jan 23 17:58:07 2015 TOE54281.222
-rw-r--r--   0 user1    users           10 Jan 23 17:58:07 2015 TOE99999.111
winscp> ls TOEFL/TOE54281*
-rw-r--r--   0 user1    users           10 Jan 23 17:58:07 2015 TOE54281.111
-rw-r--r--   0 user1    users           10 Jan 23 17:58:07 2015 TOE54281.222
winscp> ls TOEFL/TOE54281*.???
-rw-r--r--   0 user1    users           10 Jan 23 17:58:07 2015 TOE54281.111
-rw-r--r--   0 user1    users           10 Jan 23 17:58:07 2015 TOE54281.222

参考文献:


但似乎您实际上是在WinSCP会话日志中引用列表,而不是脚本控制台上的列表(= ls命令的结果)。

SFTP或FTP协议不提供客户端请求列出仅符合特定条件的文件的任何机制(仅允许匹配WinSCP-specific file mask)。

(请注意,您使用的是SFTP协议,与您的帖子相反。但对于FTP协议,所有这些都同样如此)

因此,WinSCP(或任何其他SFTP或FTP客户端)必须请求服务器提供目录的完整列表,然后在本地过滤该列表以查找符合条件(掩码)的文件。

您在会话日志中看到的是导致最终结果的整个过程,该过程在脚本控制台上列出。该列表在日志中标记为“Script:”前缀。

请注意,session log不适用于任何类型的自动处理/解析,如果这是您想要做的。如果您需要解析结果,请使用XML log,尤其是ls tag。它仅包含匹配的文件,用于自动处理/解析:

<?xml version="1.0" encoding="UTF-8"?>
<session xmlns="http://winscp.net/schema/session/1.0" name="..." start="2015-01-23T20:48:29.696Z">
  ...
  <ls>
    <destination value="/home/user1/TOEFL" />
    <files>
      <file>
        <filename value="TOE54281.111" />
        <type value="-" />
        <size value="10" />
        <modification value="2015-01-23T16:58:07.000Z" />
        <permissions value="rw-r--r--" />
        <owner value="user1" />
        <group value="users" />
      </file>
      <file>
        <filename value="TOE54281.222" />
        <type value="-" />
        <size value="10" />
        <modification value="2015-01-23T16:58:07.000Z" />
        <permissions value="rw-r--r--" />
        <owner value="user1" />
        <group value="users" />
      </file>
    </files>
    <result success="true" />
  </ls>
</session>