2011-04-12 5 views
2

가장 쉬운 방법이라고 생각하여 nant를 사용하려고하지만 Windows XP에서 작동하는 모든 솔루션에 열려 있습니다.하나의 파일을 여러 하위 디렉토리에 복사하는 방법

나는 다음과 같은 폴더 구조를

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

폴더 1가 - folderN 모든 Folder2와 같은 디렉토리 구조를 가지고있다. 파일을 각 폴더 N의 릴리스 폴더에 복사하고 싶습니다.

나는 현재 다음 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> 

각 folderN 디렉토리에이 복사 File.dll을 수 있습니다. 내가 뭘 잘못하고 있니? 더 좋은 방법이 있나요?

답변

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> 
관련 문제