如何从Pentaho变量中获取上级目录?
在Pentaho中获取作业目录的上级目录方法
要从${Internal.Job.Filename.Directory}回溯获取上级目录,有两种直接可行的方式,可根据需求选择:
方法1:用内置文件路径函数直接设置变量
这种方式无需额外脚本,直接通过Pentaho的文件对象方法实现:
- 在作业中添加设置变量步骤
- 变量名自定义(比如
Job_Parent_Dir) - 变量值填写:
${Internal.Job.Filename.Directory}.getParent() - 根据需要选择变量作用域(作业/父作业/根作业)
- 完成后,即可通过
${Job_Parent_Dir}引用上级目录
方法2:用JavaScript步骤解析路径
如果需要更灵活的路径处理逻辑,可通过JavaScript脚本实现:
- 在作业中添加JavaScript步骤
- 输入以下脚本:
var currentDir = new File(Internal.Job.Filename.Directory); var parentDir = currentDir.getParent(); // 第三个参数为作用域,可选"JOB"/"ROOT_JOB"/"PARENT_JOB" setVariable("Job_Parent_Dir", parentDir, "JOB");
- 运行作业后,
${Job_Parent_Dir}即为上级目录路径
注意事项
- 确保作业已保存为文件并从文件运行,临时未保存的作业无法正确初始化
${Internal.Job.Filename.Directory}变量 - 若需在转换中使用该上级目录,可通过作业的参数传递功能将变量传入转换
内容的提问来源于stack exchange,提问作者rainman
相关产品推荐
相关产品推荐

