J'ai un fichier de commandes pour copier les fichiers de Visual Studio dans mon dossier Web. Je souhaite copier tous les fichiers de mon projet Web, à l’exception des fichiers * .cs. Je n'arrive pas à obtenir que cela fonctionne:
xcopy /r /d /i /s /y /exclude:".cs" C:\dev\apan C:\web\apan
Des conseils? Je viens d'obtenir le code de sortie 4 lorsque j'essaie de l'exécuter.
Le /EXCLUDE:
argument appelle un fichier contenant une liste de fichiers exclus.
Alors créez un fichier nommé excludedfileslist.txt
contenant:
.cs\
Puis une commande comme celle-ci:
xcopy /r /d /i /s /y /exclude:excludedfileslist.txt C:\dev\apan C:\web\apan
Sinon, vous pouvez utiliser Robocopy , mais vous devrez installer/copier un fichier robocopy.exe
aux machines.
Un commentaire anonyme qui indiquait simplement "Cette solution exclut également le fichier css!"
C'est vrai créer un excludedfileslist.txt
fichier ne contient que:
.cs
(notez pas de backslash à la fin)
Exclura également tous les éléments suivants:
file1.cs
file2.css
dir1.cs\file3.txt
dir2\anyfile.cs.something.txt
Parfois, les gens ne lisent pas et ne comprennent pas l'aide de la commande XCOPY. Voici un élément que je voudrais souligner:
Utiliser/exclude
- Répertoriez chaque chaîne dans une ligne distincte dans chaque fichier. Si l'une des chaînes répertoriées correspond à une partie du chemin absolu du fichier à copier, ce fichier est alors exclu du processus de copie. Par exemple, si vous spécifiez la chaîne "\ Obj \", vous excluez tous les fichiers situés sous le répertoire Obj. Si vous spécifiez la chaîne ".obj", vous excluez tous les fichiers portant l'extension .obj.
Comme indiqué dans l'exemple, "tous les fichiers portant l'extension .obj sont exclus", mais il n'est pas précisé qu'il exclut également les fichiers ou les répertoires nommés file1.obj.tmp
ou dir.obj.output\example2.txt
.
Il y a un moyen de contourner .css
Les fichiers étant également exclus, changez le excludedfileslist.txt
fichier à contenir simplement:
.cs\
(notez la barre oblique inverse à la fin).
Voici une séquence de test complète pour votre référence:
C:\test1>ver
Microsoft Windows [Version 6.1.7601]
C:\test1>md src
C:\test1>md dst
C:\test1>md src\dir1
C:\test1>md src\dir2.cs
C:\test1>echo "file contents" > src\file1.cs
C:\test1>echo "file contents" > src\file2.css
C:\test1>echo "file contents" > src\dir1\file3.txt
C:\test1>echo "file contents" > src\dir1\file4.cs.txt
C:\test1>echo "file contents" > src\dir2.cs\file5.txt
C:\test1>xcopy /r /i /s /y .\src .\dst
.\src\file1.cs
.\src\file2.css
.\src\dir1\file3.txt
.\src\dir1\file4.cs.txt
.\src\dir2.cs\file5.txt
5 File(s) copied
C:\test1>echo .cs > excludedfileslist.txt
C:\test1>xcopy /r /i /s /y /exclude:excludedfileslist.txt .\src .\dst
.\src\dir1\file3.txt
1 File(s) copied
C:\test1>echo .cs\ > excludedfileslist.txt
C:\test1>xcopy /r /i /s /y /exclude:excludedfileslist.txt .\src .\dst
.\src\file2.css
.\src\dir1\file3.txt
.\src\dir1\file4.cs.txt
3 File(s) copied
Ce test a été complété sur une ligne de commande Windows 7 et soumis à un nouveau test sur Windows 10 "10.0.14393".
Notez que le dernier exemple exclut .\src\dir2.cs\file5.txt
qui peut être ou ne pas être inattendu pour vous.
Dans mon cas, je devais commencer une liste d'extensions à exclure à partir de la deuxième ligne car xcopy ignorait la première ligne.
Remplacez * .cs par .cs dans le fichier excludefileslist.txt
Pour exclure plusieurs types de fichiers, vous pouvez utiliser '+' pour concaténer d'autres listes. Par exemple:
xcopy /r /d /i /s /y /exclude:excludedfileslist1.txt+excludedfileslist2.txt C:\dev\apan C:\web\apan
Source: http://www.tech-recipes.com/rx/2682/xcopy_command_using_the_exclude_flag/