如何将一个文件复制到多个子目录
Posted
技术标签:
【中文标题】如何将一个文件复制到多个子目录【英文标题】:how can I copy one file to multiple sub directories 【发布时间】:2011-04-12 13:39:34 【问题描述】:我正在尝试使用 nant,因为我认为它会是最简单的,但我愿意接受任何适用于 windows xp 的解决方案。
我有以下文件夹结构
basefolder
folder1
folder2
subfolder1
code
solutionname1
projectname.interface
projectname.simulation
projectname.testcase
bin
release
folder3
...
folderN
folder1 - folderN 都具有与 folder2 相同的目录结构。我想复制一个文件到每个文件夹N的release文件夹中。
我目前有以下 nant 脚本
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://nant.sf.net/release/0.90/nant.xsd" name="CopyDll" default="FileCopy">
<property name="fileToCopy"
value="C:\file.dll"
overwrite="false"/>
<property name="baseDirectory" value="$directory::get-current-directory()" overwrite="false"/>
<target name="FileCopy"
description="Copies file to multiple directories">
<foreach item="Folder"
in="$baseDirectory"
property="foldername">
<in>
<items>
<include name="**\**\**\*.TestCase\bin\Release"/>
</items>
</in>
<do>
<copy file="$fileToCopy"
todir="$foldername"/>
<echo message="Copied file to $foldername"/>
</do>
</foreach>
</target>
</project>
这会将file.dll 复制到每个文件夹N 目录。 我究竟做错了什么? 有没有更好的方法来做到这一点?
【问题讨论】:
【参考方案1】:我想通了。我不得不改变我的 foreach 看起来像这样
<foreach item="Folder"
property="foldername">
<in>
<items>
<include name="$baseDirectory\**\*.TestCase\bin\Release"/>
</items>
</in>
<do>
<copy file="$fileToCopy"
todir="$foldername"/>
<echo message="Copied file to $foldername"/>
</do>
</foreach>
【讨论】:
以上是关于如何将一个文件复制到多个子目录的主要内容,如果未能解决你的问题,请参考以下文章
如何使用bat批处理或cmd,:将一个文件复制为“多个副本“(增量备份,自动重命名)到指定目录