我需要扫描文件夹中的文件并将属性设置为Ant中的文件名,以便稍后使用它。 例如,Jenkins文件夹下有一个test123.tar。我需要使用test * .tar来匹配这个文件,然后将一个名为“filename”的属性设置为test123.tar 是否可以这样做? 非常感谢!如何获取文件名并将其设置为Ant中的属性?
2
A
回答
0
文件集(搜索)和pathconvert的组合将有所帮助。
<project name="SuperRoot" default="demo" basedir=".">
<fileset id="afileset" dir="searchfolder" includes="**/test*.jar"/>
<target name="demo" >
<pathconvert property="result" refid="afileset" />
<echo message="found : ${result}"/>
<basename property="foo.filename" file="${result}"/>
<echo message="found : ${foo.filename}"/>
</target>
</project>
4
你可以使用pathconvert的文件集转换成文件列表,然后loadresource用filterchain提取从列表中一个必需的值。
<project default="test">
<target name="test">
<!-- read your fileset into a property formatted as a list of lines -->
<pathconvert property="file.list" pathsep="${line.separator}">
<map from="${basedir}${file.separator}" to=""/>
<fileset dir="${basedir}">
<include name="test*.tar"/>
</fileset>
</pathconvert>
<!-- extract a single target file from the list -->
<loadresource property="file.name">
<string value="${file.list}"/>
<filterchain>
<!-- add your own logic to deal with multiple matches -->
<headfilter lines="1"/>
</filterchain>
</loadresource>
<!-- print the result -->
<echo message="file.name: ${file.name}"/>
</target>
</project>
输出:
$ ls test*.tar
test012.tar test123.tar testabc.tar
$
$ ant
Buildfile: C:\tmp\ant\build.xml
test:
[echo] file.name: test012.tar
BUILD SUCCESSFUL
Total time: 0 seconds
详细输出:
$ ant -v
test:
[pathconvert] Set property file.list = test012.tar
[pathconvert] test123.tar
[pathconvert] testabc.tar
[loadresource] loading test012.tar
[loadresource] test123.tar
[loadresource] testabc.tar into property file.name
[loadresource] loaded 13 characters
[echo] file.name: test012.tar
BUILD SUCCESSFUL
Total time: 0 seconds
相关问题
- 1. 如何获取属性设置的属性名称?
- 2. Apache Ant的:从文件中读取值,并将其分配给属性的值
- 3. Ant获取任务 - 将文件另存为其名称
- 4. 如何在ant文件中获取属性数?
- 5. 获取文件名并将其移动
- 6. 如何获得属性获取或设置属性属性
- 7. 如何从XML文件读取信息并将其设置为类中的属性?
- 8. [Wix] [收获]如何获得匹配组件的Guid并将其设置为Xsl中的属性
- 9. Ant属性设置为给定目录内的文件
- 10. 如何根据ANT中的条件设置属性值?
- 11. 如何使用.properties文件更改ant属性位置属性
- 12. 如何将资源文件名设置为标签的文本属性?
- 13. 从文件中提取值并将值设置为属性,在厨师中
- 14. 如何作为ANT属性返回文件名?
- 15. Boost.Spirit.Qi:获取规则的属性并将其设置为封闭规则的结构属性的字段?
- 16. 如何将user.profile属性设置为Meteor中的变量名称?
- 17. 如何从Ant中的目录名称获取文件名?
- 18. 如何重置ANT属性?
- 19. 如何设置xml属性并将更改保存到文件?
- 20. 在angularjs中获取div元素的高度,并将其设置为其他元素的属性
- 21. 如何从网页抓取文字并将其设置为document.title?
- 22. 如何设置一个Ant属性,如果它未被设置
- 23. 获取方法名称,其中属性被访问并读取属性值
- 24. Ant如何将文件中的值读入属性值?
- 25. 如何从PHP的size属性中获取文件名
- 26. 如何缓存XML文件并在Rails中读取其属性?
- 27. C#获取,设置属性
- 28. 获取和设置属性
- 29. 获取StackOverflowException设置属性
- 30. 获取和设置属性