gpt4 book ai didi

.net - NAnt:如何替换其他目录中的一组文件

转载 作者:行者123 更新时间:2023-12-04 06:26:46 25 4
gpt4 key购买 nike

我需要用其他目录中存在的所有文件替换目录中包含的所有文件。

这将是此任务的伪代码:

  foreach (string file in /foo/var)
{
srcFile = "/other/dir/" + GetFileName(file);
Copy(srcFile, file);
}

只有在 /foo/var 中都存在时,我才需要替换文件和 /other/dir .也有文件存在于 /foo/var并且不存在于 /other/dir反之亦然。

用 NAnt 做到这一点的最佳方法是什么?

最佳答案

这应该可以完成工作。它只会查看根目标目录中的文件而忽略子文件夹。如果您希望将文件包含在子文件夹中,则需要做更多的工作

<project name="Sync" default="sync" xmlns="http://nant.sf.net/release/0.85/nant.xsd">

<property name="source.path" value="D:\test\source\" />
<property name="target.path" value="D:\test\target\" />

<target name="sync" description="Copies only the matching files to a folder">
<foreach item="File" property="targetFile">
<in>
<items basedir="${target.path}"> <!-- include all files from the target path -->
<include name="*" /> <!-- this will not include subfolders -->
</items>
</in>
<do>
<if test="${file::exists(source.path + path::get-file-name(targetFile))}">
<copy
file="${source.path + path::get-file-name(targetFile)}"
tofile="${targetFile}"
overwrite="true"
/>
</if>
</do>
</foreach>
</target>
</project>

我用 Nant 0.86 测试过

关于.net - NAnt:如何替换其他目录中的一组文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5949455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com