跳过错误并在 kdb 中记录下载

Skipping the errors and recording downloads in 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;

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

@[dlFunc;;()]each file;

您可以使用类似以下方式捕获失败文件的列表:

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

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

file except badfiles