Ligne de commande pour supprimer de manière récursive des fichiers mais en excluant un certain fichier
J'ai besoin de supprimer les fichiers d'un certain type (.les fichiers zip, par exemple) à partir d'un dossier et tous ses sous-dossiers, en utilisant la ligne de commande. Idéalement, je suis à la recherche de quelque chose qui peut être exécuté comme un .fichier bat dans Windows.
Je sais qu'il est un commutateur /S pour la commande DEL à rechercher dans les sous-dossiers, mais pour ajouter à la difficulté j'ai besoin d'exclure des fichiers d'un certain nom ("Backup.zip" à titre d'exemple).
Est-il un moyen de supprimer les fichiers de manière récursive, mais exclure les fichiers d'un certain nom. Il ne sera pas pratique dans ma situation explicitement la liste de tous les noms de fichier que je veux supprimer, seuls les fichiers du même type, je ne veux pas supprimer.
source d'informationauteur Tim C | 2009-02-11
Vous devez vous connecter pour publier un commentaire.
Une belle astuce: faire de la les fichiers que vous souhaitez exclure en lecture seule!
DEL /S
ne va pas supprimer les fichiers en lecture seule.Le script suivant ne fait pas exactement ce que vous voulez (voir mes remarques ci-dessous), mais vous montre comment fichiers en lecture seule peuvent être utilisés pour éviter la suppression.
Remarque: vous pouvez adapter ce script pour ignorer non seulement un sous-dossier, mais tous les fichiers de type:
aura pour effet de vous aider à exclure tous les 'xxx' fichiers du répertoire courant et tous les sous-répertoires (d'où le
/S
option).Remarque: le "
> NUL
" est un la redirection souvent utilisé pour masquer la sortie standard, au lieu de l'afficher sur l'écran.Il peut être dangereux si on les utilise trop souvent (dans une grande boucle avec différentes voies impliquées, par exemple), puisqu'il est un appareil, et comme tous les appareils (
AUX
,COMn
,LPTn
,NUL
etPRN
):NUL
dans, disons,C:\
et après que vous l'utilisez à nouveau dansC:\TEMP
vous perdrez un autre descripteur de fichier.Vous pouvez facilement faire une boucle un ensemble de fichiers et d'effectuer une commande sur chacun d'eux, comme ceci:
Alors je pense que vous avez besoin pour lire cet article sur la façon de manipuler des chaînes de caractères dans le DOS:
http://www.dostips.com/DtTipsStringManipulation.php