Déplacez tous les fichiers à l'exception de certains (le modèle de fichier) à partir d'une commande DOS
À partir d'une commande DOS je veux déplacer tous les fichiers qui ne correspondent pas à un modèle de nom de fichier.
Quelque chose comme ceci:
Par exemple je veux déplacer tous les fichiers qui ne commence pas par "aaa"
for %i in (*) do if not %i == aaa* move %i .\..
OriginalL'auteur eze1981 | 2010-11-04
Vous devez vous connecter pour publier un commentaire.
XCOPY est conçu pour fonctionner avec 'exclure listes... Voir ci-dessous:
La première ligne effectue un DIR (répertoire) la liste des source dossier, la liste des fichiers dans le format (/b) en ignorant les noms de répertoire (/a-d). La sortie est transmis dans le FINDSTR commande.
FINDSTR regarde chaque nom de fichier et la compare à celle du début (/b) avec la chaîne "aaa".
Si le début d'un nom de fichier correspond à la chaîne "aaa", le nom de fichier est redirigée (à l'écrit) dans le fichier aaafiles.tmp dans les utilisateurs TEMP répertoire.
La /b est essentiel parce que vous ne voulez pas exclure des fichiers tels que theaaafile.txt.
La XCOPY de commande de copie de fichiers à partir de la source dossier à la destination dossier, à l'exception des fichiers qui sont répertoriés dans aaafiles.tmp.
Invité à remplacer les fichiers existants (/y) est éteint.
source et destination devra être remplacé votre propre foldernames.
C'est la copie d'un fichier, pas un mouvement. Avec de gros fichiers, une copie peut être extrêmement lente, tandis qu'un déplacement sur le même volume est quasi instantanée.
Remarque: j'ai trouvé aussi l'option
/S
(afficher le contenu du répertoire de façon récursive) utile.OriginalL'auteur Paul Tomasi
Si vous n'avez pas l'esprit de jongler avec le bit d'archive, vous pouvez l'utiliser de façon sélective, les copier et supprimer des fichiers sur la base d'un masque de fichier.
Déplacer (copier et supprimer), tous les fichiers sauf ceux commençant w/"aaa" répertoire courant "dest". Peut également spécifier le chemin source complet.
OriginalL'auteur user1054300
Une façon vous pouvez faire est de créer une liste de fichiers à déplacer dans un fichier temporaire. Utilisez ensuite le fichier dans le
for
de commande. Générer la liste à l'aidefindstr
.La première commande obtient une liste de tous les fichiers (pas de répertoires) dans le répertoire courant, puis les tuyaux de la liste de
findstr
qui exclut (/v
) les noms de fichiers qui correspondent à la forme et la met dans le fichier@movelist
dans le répertoire temp. La deuxième commande prend juste les résultats de sorte que vous pouvez faire ce que vous aurez avec eux (déplacer).Il y a sans doute une meilleure façon de le faire en une seule commande sans le fichier temporaire, je ne sais pas comment l'écrire. Je ne sais pas comment appeler la
dir
commande à partir de l'intérieur de lafor
de commande. Autant que je sache, il ne prend que les fichiers de programme qui existent, pas builtin commands.OriginalL'auteur Jeff Mercado
Robocopy est une possibilité
pour les options, voir ici http://technet.microsoft.com/en-us/library/cc733145.aspx
OriginalL'auteur Gregory Adam
Dans certains cas, il peut être plus simple. Par exemple, j'ai dû copier récursivement un tas de répertoires, mais à l'exclusion de toutes les images (png et bmp), donc j'ai simplement créé un
excludeList.txt
fichier contenant:et exécuter
Il correspond à aucun fichier ou répertoire de contenant
.png
, mais pas nécessairement fin par.png
. (Je n'ai pas d'étudier si l'utilisation intelligente de caractères génériques ou expressions régulières sont possibles).Il ne gère pas votre exemple (pour lequel vous avez déjà une bonne réponse), mais il a résolu mon problème, et cette page est ce que j'ai trouvé lorsque j'ai googlé à la recherche d'une solution 🙂
OriginalL'auteur Antonio
Pas l'idéal, mais de déplacer tous les fichiers de la destination et de déplacer les fichiers vers la source est un moyen rapide avec déplacement réel de l'opération (pas de copies). Bien sûr, cela suppose il n'y a pas de fichiers dans la destination correspondant au générique.
move source\*.* destination\ && move destination\aaa*.* source\
OriginalL'auteur Yusuf Tarık Günaydın