【问题标题】:How to console output all files from selected fileset?如何控制台输出选定文件集中的所有文件?
【发布时间】:2018-01-24 05:22:04
【问题描述】:

我刚开始使用 Ant 脚本,所以我不确定我问的问题是否正确,但这里是这样:

我有一个脚本,它假设从指定目录上的单个文件中查找 RegEx 模式并替换它,但我想在控制台上输出所选文件的列表。

我已成功创建脚本来搜索和替换,没有任何问题,而且我已经知道更改的文件数量(不到 5000 个文件)。现在我正在尝试输出文件列表,但控制台中显示的文件数量要少得多(不到 600 个文件)。我不确定是文件数量太多而无法在控制台上输出还是我的脚本需要工作

这是我必须输出结果的代码:

    <target name="find">
        <path id="find.path">
            <fileset dir="${custom.dir}">
                <include name="**/*.js"/>
                <include name="**/*.jsp"/>
                <include name="**/*.xml"/>
                <include name="**/*.css"/>
                <include name="**/*.java"/>
                <containsregexp expression="(YEAR|DATE)(?:\s*2016,\s)"/>
            </fileset>
        </path>
        <pathconvert pathsep="${line.separator}--> "             
                property="echo.path.compile"             
                refid="find.path">
        </pathconvert>
        <echo>${echo.path.compile}</echo>
    </target>

【问题讨论】:

    标签: ant echo fileset


    【解决方案1】:

    假设您的 Ant 的 XML 文件是 find.xml,其中包含您提供的上述代码,而您的文件的 custom.dir/Desktop/Files

    以下是使用 Bash shell 的步骤:

    1. find.xml的同一目录下创建一个名为find.sh的文件

    2. file.sh 内输入以下内容(您不能在下面的代码中使用${custom.dir} 作为参考):

      for f in /Desktop/Files/*; do 
        echo $f;
        ant -f find.xml find;
      done 
      

    它的作用是遍历文件目录中的每个文件,无论扩展名是什么,它都会回显文件名及其位置,然后执行find.xml,目标为find

    您从终端运行find.sh 文件,例如./find.sh

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 2021-10-21
      相关资源
      最近更新 更多