有没有精通kettle的

🆘:用过kettle把一个目录下的文件移动到另一个指定文件夹内

  1. 打开Kettle,创建一个新的转换。

  2. 在转换中添加一个"Get File Names"步骤,用于获取需要移动的文件名列表。

  3. 在"Get File Names"步骤中,设置"File / Folder"为需要移动的文件所在的目录,设置"File mask"为需要移动的文件的通配符(例如*.txt)。

  4. 添加一个"Move Files"步骤,用于将文件移动到指定文件夹内。

  5. 在"Move Files"步骤中,设置"Source File / Folder"为需要移动的文件所在的目录,设置"Destination File / Folder"为需要移动到的目标文件夹。

  6. 运行转换,即可将指定目录下的文件移动到指定文件夹内。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7521046
  • 这篇博客也不错, 你可以看下Kettle的转换与作业
  • 您还可以看一下 陈健老师的kettle精讲课程中的 kettle-定时任务小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以帮您解决这个问题。请按照以下步骤进行:

    1. 打开Kettle,创建一个转换。

    2. 将“获取文件名”控件和“文件移动”控件拖拽到Kettle工作区中。

    3. 右键连接这两个控件,确保它们被正确链接。

    4. 双击“获取文件名”控件,进入“获取文件名”页面。配置如下: 文件/目录:要移动的文件所在的目录路径 包含子目录:选中 通配符:* (表示获取所有文件) 跳过隐藏文件:选中

    5. 双击“文件移动”控件,进入“文件移动”页面。配置如下: 文件/目录:将文件移动到的目标目录路径 取代文件/临时扩展:选中 目标文件扩展:移动后文件的扩展名,可以留空

    6. 点击“运行”按钮,Kettle会开始移动所有匹配的文件。

    以下是代码示例:

    <transformation>
      <step>
        <name>Get File Names</name>
        <type>GetFileNames</type>
        <description/>
        <distribute>Y</distribute>
        <copies>1</copies>
        <partitioning>
          <method>none</method>
          <schema_name/>
        </partitioning>
        <fields>
          <field>
            <name>FileName</name>
            <type>String</type>
            <length>-1</length>
            <precision>-1</precision>
            <currency/>
            <decimal/>
            <group/>
            <nullif/>
            <ifnull/>
            <trim_type>none</trim_type>
            <repeat>Y</repeat>
          </field>
          <field>
            <name>WildCard</name>
            <type>String</type>
            <length>-1</length>
            <precision>-1</precision>
            <currency/>
            <decimal/>
            <group/>
            <nullif/>
            <ifnull/>
            <trim_type>none</trim_type>
            <repeat>N</repeat>
          </field>
          <field>
            <name>ExcludeFileMask</name>
            <type>String</type>
            <length>-1</length>
            <precision>-1</precision>
            <currency/>
            <decimal/>
            <group/>
            <nullif/>
            <ifnull/>
            <trim_type>none</trim_type>
            <repeat>N</repeat>
          </field>
          <field>
            <name>IncludeSubFolders</name>
            <type>Boolean</type>
            <length>-1</length>
            <precision>-1</precision>
            <currency/>
            <decimal/>
            <group/>
            <nullif/>
            <ifnull/>
            <trim_type>none</trim_type>
            <repeat>N</repeat>
          </field>
        </fields>
        <include_subfolders>Y</include_subfolders>
        <filemasks>
          <filemask>
            <filemask>*</filemask>
            <exclude>Y</exclude>
          </filemask>
        </filemasks>
        <passing_through_fields>N</passing_through_fields>
        <reset_file_key>N</reset_file_key>
        <file_required>N</file_required>
        <is_hidden>N</is_hidden>
        <limit>0</limit>
        <fields_name>
          <field_name>FileName</field_name>
          <field_name>WildCard</field_name>
          <field_name>ExcludeFileMask</field_name>
          <field_name>IncludeSubFolders</field_name>
        </fields_name>
        <hidden>N</hidden>
      </step>
      <step>
        <name>File Move</name>
        <type>FileMove</type>
        <description/>
        <distribute>Y</distribute>
        <copies>1</copies>
        <partitioning>
          <method>none</method>
          <schema_name/>
        </partitioning>
        <fields>
          <field>
            <name>source_filefolder</name>
            <type>String</type>
            <length>-1</length>
            <precision>-1</precision>
            <currency/>
            <decimal/>
            <group/>
            <nullif/>
            <ifnull/>
            <trim_type>none</trim_type>
            <repeat>N</repeat>
          </field>
          <field>
            <name>source_filename</name>
            <type>String</type>
            <length>-1</length>
            <precision>-1</precision>
            <currency/>
            <decimal/>
            <group/>
            <nullif/>
            <ifnull/>
            <trim_type>none</trim_type>
            <repeat>N</repeat>
          </field>
          <field>
            <name>destination_filefolder</name>
            <type>String</type>
            <length>-1</length>
            <precision>-1</precision>
            <currency/>
            <decimal/>
            <group/>
            <nullif/>
            <ifnull/>
            <trim_type>none</trim_type>
            <repeat>N</repeat>
          </field>
          <field>
            <name>destination_filename</name>
            <type>String</type>
            <length>-1</length>
            <precision>-1</precision>
            <currency/>
            <decimal/>
            <group/>
            <nullif/>
            <ifnull/>
            <trim_type>none</trim_type>
            <repeat>N</repeat>
          </field>
        </fields>
        <filename_Field>FileName</filename_Field>
        <include_subfolders>Y</include_subfolders>
        <create_move_folder>N</create_move_folder>
        <add_date>N</add_date>
        <add_time>N</add_time>
        <specify_format>N</specify_format>
        <date_time_format/>
        <add_to_result_filenames>Y</add_to_result_filenames>
        <destination_is_a_file>N</destination_is_a_file>
        <create_destination_folder>N</create_destination_folder>
        <overwrite_file>N</overwrite_file>
        <only_modify_date>N</only_modify_date>
        <only_modify_time>N</only_modify_time>
        <encoding/>
        <passing_through_fields>N</passing_through_fields>
        <limit>0</limit>
        <timeout>0</timeout>
        <fields_name>
          <field_name>source_filefolder</field_name>
          <field_name>source_filename</field_name>
          <field_name>destination_filefolder</field_name>
          <field_name>destination_filename</field_name>
        </fields_name>
      </step>
    </transformation>