web-dev-qa-db-fra.com

Puis-je copier plusieurs fichiers nommés sur la ligne de commande Windows à l'aide d'une seule commande "copier"?

Je voudrais copier plusieurs fichiers connus dans un autre répertoire dans le cadre d'un événement post-génération, mais je ne veux pas avoir de lignes et de lignes de "copie [fichier] [destination] [commutateurs]" dans mon événement de génération. Si possible, j'aimerais lister les fichiers que je voudrais copier en utilisant un format similaire: "copier [fichier 1] [fichier 2] [fichier 3] [etc ...] [destination] [commutateurs]" . Cependant, Windows ne semble pas aimer ce type de format. Des idées? Merci!

37
Mark Carpenter

Vous pouvez utiliser 'for' dans un fichier batch ou directement à partir de l'invite de commande:

for %I in (file1.txt file2.txt file3.txt) do copy %I c:\somedir\

Les caractères génériques sont également pris en charge dans la liste de fichiers:

for %I in (*.txt *.doc *.html) do copy %I c:\somedir\

Pour plus d'informations, tapez simplement pour /? à partir d'une invite de commande, ou pour une aide beaucoup plus facile à lire, utilisez Démarrer-> Aide et support et recherchez "Pour". Sur mon XP Pro box, c'était le point 15 dans les résultats de recherche en texte intégral.

52
Ken White

XP et Vista ont remplacé xcopy par robocopy, et il fera exactement ce que vous voulez. La syntaxe de ce que vous voulez semble rétrograde au début, mais elle fait le travail:

robocopy source\folder a\dest\folder file1.exe file2.bat file3.dll file4.txt
20
Kevin

Utilisez le <Copy> Tâche MSBuild .

2
David Schmitt