首页 > 解决方案 > 跳过错误并在 kdb 中记录下载

问题描述

我正在尝试使用 kdb q 脚本从远程源下载文件。如果出现错误,如何使下载继续进行?另外,当同一目录中有其他文件时,如何标记它在linux中下载的内容???

这是我的代码:

file:("abc.csv";"def.csv");
dbdir:"/home/terry/";
dlFunc:{
  system "download.sh abc.com user /"get /remote/path/",x /",dbdir};
dlFunc each file;

标签: kdb

解决方案


如果您询问如何在一个文件失败时继续下载其他文件,那么您可以在您的 eval 周围放置一个受保护的 eval dlFunc each file,例如

@[dlFunc;;()]each file;

您可以使用以下内容捕获失败文件的列表:

badfiles:();
{@[dlFunc;x;{y;badfiles,:enlist x}x]}each file;

然后检查badfiles列表。成功的将是:

file except badfiles

推荐阅读