9
votes

Déplacez tous les fichiers sauf certains (modèle de fichier) d'une commande DOS

à partir d'une commande DOS, je souhaite 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 commencent pas par "AAA" P>

for %i in (*) do if not %i == aaa* move %i .\..


0 commentaires

6 Réponses :


4
votes

Une manière dont vous pouvez le faire est de créer une liste des fichiers pour vous déplacer dans un fichier temporaire. Utilisez ensuite le fichier dans la commande pour code>. Générez la liste à l'aide de FindStr code>.

> dir/b/a-d | findstr /v aaa* > "%temp%\@movelist"
> for /f %f in (%temp%\@movelist) do move %f ...


0 commentaires

14
votes

xcopopy strud> est conçu pour fonctionner avec " exclure les listes em> '... Voir ci-dessous:

   dir /b /a-d "source"|findstr /b "aaa" >"%temp%\aaafiles.tmp"

   xcopy "source" "destination\" /exclude:%temp%\aaafiles.tmp /y


2 commentaires

C'est une copie de fichier cependant, pas un geste. Avec des fichiers volumineux, une copie peut être extrêmement lente pendant que un déplacement sur le même volume est presque instantané.


Remarque: j'ai trouvé également l'option / s (contenu de répertoire d'affichage récursivement) utile.



4
votes

Si cela ne vous dérange pas de tripoter le bit d'archivage, vous pouvez l'utiliser pour copier et supprimer de manière sélective des fichiers basés sur un masque de fichier.

déplacer (copier et supprimer) tous les fichiers sauf ceux qui commencent avec "AAA" du répertoire actuel à "DEST". Peut également spécifier un chemin source complet. P>

attrib +a *.*
attrib -a aaa*.*
xcopy /a [or /m] *.* dest
del /aa /q *.*  


0 commentaires

2
votes

Dans certains cas, il peut être rendu plus simple. Par exemple, j'ai dû copier de manière récursive un tas de répertoires mais excluant toutes les images (fichiers PNG et BMP), donc j'ai simplement créé un fichier excludeelist.txt contenant: xxx < p> et exécuter xxx

correspondra à tout fichier ou répertoire contenant .png , mais pas nécessairement Terminer par .png . (Je n'ai pas étudié si l'utilisation intelligente des caractères génériques ou des expressions régulières est possible). Il ne gère pas votre exemple particulier (pour lequel vous avez déjà une bonne réponse), mais cela a résolu mon problème, et cette page est ce que j'ai trouvé quand j'ai choisi lors de la recherche d'une solution :)


0 commentaires

7
votes

Robocopy est une possibilité xxx

pour options voir ici http://technet.microsoft.com/en-us/library/cc733145.aspx


0 commentaires

1
votes

Non Idéal, mais déplacer tous les fichiers sur la destination et déplacer les fichiers à la source est un moyen rapide avec l'opération de déplacement réelle (pas de copies). Bien sûr, cela suppose qu'il n'y a pas de fichiers dans la destination correspondant au Wildcard.

Déplacer la source \ *. * Destination \ && Déplacement de destination \ AAA *. * Source \


0 commentaires