/repo/java/projects/myproj
Antプロパティなどのファイルパスがあります。結果を削除して別のプロパティに/repo/java
保存するにはどうすればよいですか?projects/myproj
2662 次
1 に答える
4
pathconvert
Antタスクは、パスから最初の2つのディレクトリを削除する(または最初の2つのディレクトリを取得する)ためにネストされた状態で使用できますmapper
。
プレフィックスを削除する/repo/java/
'/'ファイル区切り文字に一致
<property name="path" value="/repo/java/projects/myproj"/>
<target name="test1">
<pathconvert property="path.fragment" pathsep="${line.separator}">
<propertyresource name="path" />
<mapper type="regexp"
from="^/[^/]+/[^/]+/(.*)"
to="\1"/>
</pathconvert>
<echo message="${path.fragment}" />
</target>
出力
test1:
[echo] projects/myproj
BUILD SUCCESSFUL
Total time: 0 seconds
プラットフォームファイルセパレータに一致
<property name="path" value="/repo/java/projects/myproj"/>
<target name="test2">
<pathconvert property="path.fragment" pathsep="${line.separator}">
<propertyresource name="path" />
<mapper type="regexp"
from="^${file.separator}[^${file.separator}]+${file.separator}[^${file.separator}]+${file.separator}(.*)"
to="\1"/>
</pathconvert>
<echo message="${path.fragment}" />
</target>
出力
test2:
[echo] projects/myproj
BUILD SUCCESSFUL
Total time: 0 seconds
プレフィックスを取得/repo/java/
'/'ファイル区切り文字に一致
<property name="path" value="/repo/java/projects/myproj"/>
<target name="test3">
<pathconvert property="path.fragment" pathsep="${line.separator}">
<propertyresource name="path" />
<mapper type="regexp"
from="^(/[^/]+/[^/]+/).*"
to="\1"/>
</pathconvert>
<echo message="${path.fragment}" />
</target>
出力
test3:
[echo] /repo/java/
BUILD SUCCESSFUL
Total time: 0 seconds
プラットフォーム固有のファイルセパレータに一致
<property name="path" value="/repo/java/projects/myproj"/>
<target name="test4">
<pathconvert property="path.fragment" pathsep="${line.separator}">
<propertyresource name="path" />
<mapper type="regexp"
from="^(${file.separator}[^${file.separator}]+${file.separator}[^${file.separator}]+${file.separator}).*"
to="\1"/>
</pathconvert>
<echo message="${path.fragment}" />
</target>
出力
test4:
[echo] /repo/java/
BUILD SUCCESSFUL
Total time: 0 seconds
于 2012-08-23T23:49:49.580 に答える