🆘:用过kettle把一个目录下的文件移动到另一个指定文件夹内
打开Kettle,创建一个新的转换。
在转换中添加一个"Get File Names"步骤,用于获取需要移动的文件名列表。
在"Get File Names"步骤中,设置"File / Folder"为需要移动的文件所在的目录,设置"File mask"为需要移动的文件的通配符(例如*.txt)。
添加一个"Move Files"步骤,用于将文件移动到指定文件夹内。
在"Move Files"步骤中,设置"Source File / Folder"为需要移动的文件所在的目录,设置"Destination File / Folder"为需要移动到的目标文件夹。
运行转换,即可将指定目录下的文件移动到指定文件夹内。
我可以帮您解决这个问题。请按照以下步骤进行:
打开Kettle,创建一个转换。
将“获取文件名”控件和“文件移动”控件拖拽到Kettle工作区中。
右键连接这两个控件,确保它们被正确链接。
双击“获取文件名”控件,进入“获取文件名”页面。配置如下: 文件/目录:要移动的文件所在的目录路径 包含子目录:选中 通配符:* (表示获取所有文件) 跳过隐藏文件:选中
双击“文件移动”控件,进入“文件移动”页面。配置如下: 文件/目录:将文件移动到的目标目录路径 取代文件/临时扩展:选中 目标文件扩展:移动后文件的扩展名,可以留空
点击“运行”按钮,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>