【问题标题】:NAnt foreach loop folders recursiveNAnt foreach 循环文件夹递归
【发布时间】:2009-07-27 17:43:42
【问题描述】:

有人知道我如何使用 NAnt 创建递归循环吗?我需要遍历所有文件夹并将文件上传到我们的网络服务器。我正在使用这个 NAnt ftp 任务 (http://www.spinthemoose.com/~ftptask),但它似乎没有上传整个目录。它只上传我的 put 元素中提到的文件。

谢谢,

【问题讨论】:

    标签: loops nant


    【解决方案1】:

    Foreach task。您可以找到遍历文件夹的示例。

    完整示例:

    <foreach item="Folder" property="foldername">
        <in>
            <items>
                <include name="YOUR_FOLDER\**" />
            </items>
        </in>
        <do>
            <foreach item="File" property="filename" in="${foldername}">
            <do>
                <echo message="${filename}" />
            </do>
            </foreach>              
        </do>
    </foreach>
    

    如果你不需要文件夹,你可以用更少的代码实现你的需求:

    <foreach item="File" property="filename">
        <in>
            <items>
                <include name="YOUR_FOLDER\**" />
            </items>
        </in>
        <do>
            <echo message="${filename}" />
        </do>
    </foreach>
    

    【讨论】:

    • 我已经检查过了,但是没有递归的例子。
    • 示例 iv.循环遍历项目目录中的所有文件夹。这是你需要的东西。
    • 这似乎适用于 NAnt 的默认文件夹,但是如果我将其更改为: 那么它就不会不要给我看递归文件夹。有什么想法吗?
    • 你有没有在路径末尾添加“**”?这是关键。
    • 不,我没有。抱歉,这是我使用 NAnt 的第一天。您的示例现在有效。 ** 有什么作用?
    【解决方案2】:

    我相信这应该给你文件夹的递归列表

    <?xml version="1.0"?>
    

    <target name="task.recursive">
        <foreach item="Folder" in="${folder.current}" property="folder">
            <echo message="${folder}" />
            <property name="folder.current" value="${folder}" />
            <call target="task.recursive" />
        </foreach>
    </target>
    
    <target name="task.run">
        <echo message="${project.folder.root}" level="Info" />
        <property name="folder.current" value="${project.folder.root}" />
        <call target="task.recursive" />
    </target>
    

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 1970-01-01
      • 2021-10-20
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 2018-08-09
      • 2021-12-02
      • 1970-01-01
      相关资源
      最近更新 更多