Partager via


Move (tâche)

Déplace les fichiers vers un nouvel emplacement.

Paramètres

Le tableau ci-dessous décrit les paramètres de la tâche Move .

Paramètre Description
DestinationFiles Paramètre de sortie ITaskItem[] facultatif.

Spécifie la liste de fichiers vers laquelle déplacer les fichiers sources. Cette liste est censée représenter un mappage un-à-un à la liste spécifiée dans le paramètre SourceFiles. Autrement dit, le premier fichier spécifié dans SourceFiles est déplacé au premier emplacement indiqué dans DestinationFiles, et ainsi de suite.
DestinationFolder Paramètre ITaskItem facultatif.

Indique le répertoire dans lequel vous souhaitez déplacer les fichiers.
MovedFiles Paramètre de sortie ITaskItem[] facultatif.

Contient les éléments qui ont été déplacés avec succès.
OverwriteReadOnlyFiles Paramètre Boolean facultatif.

Si la valeur est true, remplace les fichiers même s’ils sont marqués comme fichiers en lecture seule.
SourceFiles Paramètre ITaskItem[] obligatoire.

Spécifie les fichiers à déplacer.

Remarques

Le paramètre DestinationFolder ou le paramètre DestinationFiles doit être spécifié, mais pas les deux. Si les deux paramètres sont spécifiés, la tâche échoue, et une erreur est enregistrée.

La tâche Move crée des dossiers pour les fichiers de destination souhaités, en fonction des besoins.

En plus des paramètres répertoriés dans le tableau, cette tâche comprend des paramètres qu’elle hérite de la classe TaskExtension, qui elle-même hérite de la classe Task. Pour obtenir la liste de ces paramètres supplémentaires et leurs descriptions, consultez Classe de base TaskExtension.

Exemples

L’exemple suivant déplace des fichiers du dossier source vers le dossier dest. Les dossiers source et dest sont relatifs au fichier projet. Si dest n’existe pas, il est créé.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <FilesToMove Include="source\*.*"/>
  </ItemGroup>

  <Target Name="MoveFiles" AfterTargets="Build">
     <Message Text="Moving Files @(FilesToMove)"/>
     <Move SourceFiles="@(FilesToMove)" DestinationFolder="dest">
       <Output 
          TaskParameter="DestinationFiles"
          ItemName="FilesWritten"/>
     </Move>
     <Message Text="@(FilesWritten)"/>
  </Target>
</Project>

L’exemple suivant renomme les fichiers selon un modèle de remplacement. Il suppose que des fichiers comme files\original1.txt et files\original2.txt existent et que le fichier original.txt existe au niveau du projet avant l’exécution. Notez l’utilisation de la fonction Replace d’élément de chaîne pour modifier les noms de fichiers. Voir Fonctions d’élément.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <ItemGroup>
    <FilesToRename Include="files\original*" />    
  </ItemGroup>

  <Target Name="MoveFiles" AfterTargets="Build">
    <Message Text="Rename one file"/>
    <Move SourceFiles="original.txt" DestinationFiles="new.txt"/>
    <Message Text="Renaming files @(FilesToRename)"/>
    <Move SourceFiles="@(FilesToRename)" DestinationFiles="@(FilesToRename->Replace('original', 'new'))" />
  </Target>

</Project>

Les exemples suivants renomment tous les fichiers d’une sous-arborescence complète qui contiennent le texte de recherche et le texte de remplacement dans les propriétés MSBuild. L’exemple montre l’utilisation de la fonction Replace de propriété de chaîne pour modifier le nom de fichier. Il illustre également l’utilisation de l’option OverwriteReadOnlyFiles.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <SearchText>original</SearchText>
    <ReplaceText>new</ReplaceText>
  </PropertyGroup>

  <ItemGroup>
    <FilesToRename Include="files\**\*$(SearchText)*" />    
  </ItemGroup>

  <Target Name="MoveFiles" AfterTargets="Build">
    <Message Text="Renaming files @(FilesToRename)"/>
    <Move SourceFiles="@(FilesToRename)"
          OverwriteReadOnlyFiles="true"
          DestinationFiles="@(FilesToRename->Replace($(SearchText), $(ReplaceText)))" />
  </Target>

</Project>

Il peut s’avérer utile d’utiliser les métadonnées d’élément pour construire la liste des fichiers de destination. Ici, les métadonnées d’éléments connus %(RelativeDir) et %(Filename) sont référencés pour construire les noms de fichiers modifiés, dans ce cas pour modifier les extensions de tout fichier dans une sous-arborescence avec l’extension .txt en .orig.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <NewExtension>orig</NewExtension>
  </PropertyGroup>

  <ItemGroup>
    <FilesToRename Include="files\**\*.txt" />
    <RenamedFiles Include="@(FilesToRename -> '%(RelativeDir)%(Filename).$(NewExtension)')" />    
  </ItemGroup>

  <Target Name="MoveFiles" AfterTargets="Build">
    <Message Text="Renaming files @(FilesToRename) to @(RenamedFiles)"/>
    <Move SourceFiles="@(FilesToRename)"
          OverwriteReadOnlyFiles="true"
          DestinationFiles="@(RenamedFiles)" />
  </Target>

</Project>

Voir aussi