2011-04-12 136 views
2

我正在嘗試使用nant,因爲我認爲這將是最簡單的,但我對任何可以在Windows XP上運行的解決方案都是開放的。如何將一個文件複製到多個子目錄

我有以下文件夾結構

basefolder 
    folder1 
    folder2 
     subfolder1 
      code 
       solutionname1 
        projectname.interface 
        projectname.simulation 
        projectname.testcase 
         bin 
          release 
    folder3 
    ... 
    folderN 

文件夾1 - folderN都具有相同的目錄結構文件夾2。我想將文件複製到每個文件夾N中的發行文件夾。

目前,我有以下腳本楠

<?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每個folderN目錄。 我在做什麼錯? 有沒有更好的方法來做到這一點?

回答

2

我想通了。我必須改變我的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> 
相關問題