12 votes

Suppression de tous les fichiers qui ne correspondent pas à un certain modèle - Ligne de commande Windows

La suppression d'éléments via la ligne de commande est assez simple.

del /options filename.extension

Supposons maintenant que je veuille supprimer tous les fichiers qui ne se terminent pas par .jpg dans un dossier, comment dois-je faire ?

Le problème est que j'ai un logiciel qui convertit toutes les images spécifiées en .jpg, mais il laisse les originaux, dont je n'ai plus besoin.

Il serait beaucoup plus efficace d'exécuter une seule déclaration, plutôt que de faire plusieurs déclarations pour chaque type de fichier différent.

18voto

killdash10 Points 528

Je le ferais comme ça :

attrib +r *.jpg
del /q *
attrib -r *.jpg

Cela rendra d'abord tous les fichiers JPG en lecture seule, supprimera tout le reste (cela sautera automatiquement les fichiers en lecture seule), et rendra ensuite les fichiers JPG à nouveau accessibles en écriture.

9voto

davidcann Points 1005

C'est en fait assez facile.

Vous aurez besoin de for pour itérer sur les fichiers et ensuite simplement chercher l'extension :

for %f in (*) do if not %~xf==.jpg del "%f"

devrait faire l'affaire (code aquí ).

2voto

Janis Veinbergs Points 4959

Powershell à la rescousse
À l'époque de Windows 7/8, c'est le successeur de la bonne vieille ligne de commande.

Del C:\myFolder\* -exclude '*.jpg'

Del est un alias pour Remove-Item . Il dispose de plusieurs options comme la récursion, l'inclusion, l'exclusion et le filtrage (à utiliser pour RegEx).

Vous devez ajouter \* pour inclure les fichiers dans un dossier donné

1voto

alastairs Points 3045

Je sais que cela ne répond pas directement à votre question, mais avez-vous regardé les options de votre convertisseur pour voir si.. :

  1. Il peut supprimer lui-même les originaux

ou

  1. Écrire les .jpg dans un nouveau dossier ?

0voto

CaptPat Points 1

Je cherchais un moyen de trouver tous les fichiers qui n'avaient PAS l'extension ".mp3" dans un répertoire TREE sous Windows 7 (volume NTFS) contenant peut-être 20 000 fichiers dans plusieurs centaines de répertoires de différentes profondeurs... donc après un peu d'angoisse, j'ai utilisé :

cd <theplace>
dir /S | find /V "<DIR>" | find /V "Total" | find /V "bytes" | find /V "Directory" | find /V "Volume" | find /V ".mp3" | more /S

ceci a listé les fichiers qui ne correspondaient pas au .mp3 après avoir supprimé tout ce qui était lié à la sortie de la commande DIR... Cela fonctionne à 99%... sauf si le fichier qui ne correspond pas est nommé avec l'un des mots-clés de la sortie standard de DIR - il y a peut-être un moyen de faire en sorte que DIR rapporte moins d'informations d'en-tête/de résumé - mais je n'ai pas pris la peine de m'en préoccuper car cela a permis d'atteindre la plupart des objectifs.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X