拡張子を持つファイルが 10 個あるファイルセットがあります。次に、これを取得して、ファイル名と拡張子を2つの個別のプロパティ/変数に取得する必要がありますが、方法がわかりません. ファイルが XB12345.FILE というファイル名と FILE.MBR というメンバーを持つ I/5 システムに移動する必要があるファイルとして、Unix で XB12345.FILE としてこれを行う必要がある理由。ほとんどのファイルには一貫した拡張子がなく、実行時にのみ認識されます。どんな助けでも大歓迎です。
質問する
2625 次
2 に答える
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"/>
次の手順に従えば、Ant-Contrib タスクのインストールは非常に簡単です。
- ant-contrib-1.0b3.jar をダウンロードします。
- プロジェクトのルートに というディレクトリを作成します
antlib/ac
。 ant-contrib-1.0b3.jar file in the
antlib/ac` ディレクトリを置きます。- タスク定義を追加します。
このような:
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<fileset dir="${basedir}/antlib/ac"/>
<classpath>
</taskdef>
バージョン管理システムを使用している場合は、プロジェクトのバージョン管理システムに ant-contrib-1.0b3.jar ファイルをチェックインします。現在、誰かがビルドを行う必要がある場合、彼らはあなたのプロジェクトをチェックアウトします。Ant Contrib タスクは既に定義されており、Ant-Contrib jar はそこにあります。開発者が Ant-Contrib をインストールする必要はありません。あなたのビルドは機能します。
于 2012-12-05T04:38:42.840 に答える
0
propertyregex は意図した問題の解決策ですが、解決策にはオーバーライド プロパティを使用する必要があります。
<propertyregex property="base.name"
input="file.name"
regexp="(.*)\.(.*)"
select="\1" override="true"/>
<propertyregex property="suffix.name"
input="file.name"
regexp="(.*)\.(.*)"
select="\2" override="true"/>
于 2012-12-05T06:23:54.330 に答える