【问题标题】:Get file name from a directory by searching a string in pentaho通过在 pentaho 中搜索字符串从目录中获取文件名
【发布时间】:2015-05-22 09:14:49
【问题描述】:

我将准备一个包含路径(目录)和文件名等字段的作业。这些字段的值将随每一行发生变化。

我的任务目标是,我需要检查目录中是否存在 FileName 文件。我用“文件存在”步骤做的,检查文件是否存在。然后我使用“过滤行”步骤并在文件存在时执行操作。

如果目录中不存在该文件,我需要检查以该文件名值开头的其他文件。

示例:我的文件名为“sample.png”,如果该文件在目录中不存在,我想搜索以“sample...”开头的文件(例如:sample_1.png)。

【问题讨论】:

    标签: javascript pentaho kettle


    【解决方案1】:

    你能试试这个方法吗

    1. 在“获取文件名”中使用通配符表达式^sample.*获取目录中具有sample键的文件列表(使用ktr)

      李>
    2. 然后使用过滤行步骤过滤掉两条路径。 True path 将传递文件名为 sample.png 的数据,False path 将传递文件以防 sample.png 未找到。

    ktr 的示例图片如下所示

    我的想法是先从路径中读取所有文件,然后过滤掉任何需要的文件,而不是仔细检查文件的存在。

    注意在上图中,path 是图像目录的位置。使用您自己的文件夹路径以获得正确的结果。

    希望对你有帮助:)

    【讨论】:

    • 感谢 Rishu 的快速响应。但是我在“路径”字段中有目录路径,但是在“文件/目录”列中声明它时,它给了我一个错误“无法列出“文件:///home/Arun/Path”的内容,因为它不是文件夹。”任何替代的想法都会很棒。
    • @Arunraj 您是否尝试过将目录路径作为参数传递,例如 ${path} ,其中定义了 path=variable。在上面的示例中,我没有使用动态路径参数....而不是路径,如果路径不是动态的,只需给出图像位置的路径。
    • 变量路径将是动态的,每行都会改变,我也想在变量中给出“路径”,但我猜动态值不能设置为变量。跨度>
    • @Arunraj 是的,可以轻松设置动态路径变量。尝试阅读此blog。希望这可能会有所帮助
    • 我已经按照博客中的说明进行了尝试,它运行了它必须运行的次数,但是当我使用变量 ${path} 时,它不会返回任何值(即目录)路径,它只返回 ${path} 这样。你知道我哪里出错了吗?
    猜你喜欢
    • 1970-01-01
    • 2017-02-11
    • 2012-05-22
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多