Ant 脚本将文件名和扩展名拆分为 2 个单独的属性

0 ant

我有一个文件集,上面有 10 个带有扩展名的文件。然后我需要接受这个并将文件名和扩展名放入 2 个单独的属性/变量中,但不确定如何。我之所以需要这样做,是因为文件在 Unix 上以 XB12345.FILE 开头,我需要将其移动到 I/5 系统,文件名为 XB12345.FILE,成员为 FILE.MBR。大多数文件没有一致的扩展名,只能在运行时知道。任何帮助,将不胜感激。

Dav*_* W. 5

这听起来像是Ant-Contrib任务的工作。

Ant-Contrib 任务已经存在很长时间了,并且在 Ant 项目中很常见。该PropertyRegex任务会做你想要什么。事实上,甚至还有一个可以处理循环的For任务。

<PropertyRegEx>任务将是这个样子:

<propertyregex property="base.name"
    input="file.name"
    regexp="(.*)\.(.*)"
    select="\1"/>

<propertyregex property="suffix.name"
    input="file.name"
    regexp="(.*)\.(.*)"
    select="\2"/>
Run Code Online (Sandbox Code Playgroud)

如果您按照以下步骤安装 Ant-Contrib 任务是相当容易的:

  • 下载ant-contrib-1.0b3.jar
  • 在项目的根目录中创建一个名为antlib/ac.
  • 放入ant-contrib-1.0b3.jar file in theantlib/ac` 目录。
  • 添加任务定义。

像这样:

<taskdef resource="net/sf/antcontrib/antlib.xml">
    <classpath>
        <fileset dir="${basedir}/antlib/ac"/>
    <classpath>
</taskdef>
Run Code Online (Sandbox Code Playgroud)

如果您使用版本控制系统,请将 ant-contrib-1.0b3.jar 文件签入到项目的版本控制系统中。现在,当有人需要进行构建时,他们会检查您的项目,并且 Ant Contrib 任务已经定义并且 Ant-Contrib jar 就在那里。开发人员无需安装 Ant-Contrib。您的构建正常工作。