1 votes

Suppression des fichiers dans les sous-dossiers, avec possibilité de conserver un fichier dans chaque dossier

J'ai un dossier racine (Nowy3), avec beaucoup de sous-dossiers à l'intérieur (1,2,3 etc.). Chaque sous-dossier contient beaucoup de fichiers (Comme Nowy3 \1\file1.1 Nowy3 \1\file2.1 ; Nowy3 \1\file3.1 ).

Je veux faire un CMD script qui sauvegarde un fichier le plus récent dans chaque sous-dossier, et supprime les autres fichiers plus anciens. Dans un seul dossier, je peux le faire, mais je ne peux pas le faire lorsque le dossier a des sous-dossiers et des fichiers dans ces sous-dossiers.

J'ai essayé mais ça ne marche pas

for /f "skip=1 delims=" %F in ('dir C:\Users\M\Desktop\Nowy3\* /b/o-d') do del C:\Users\M\Desktop\Nowy3\%F /S /Q

Comment le changer ?

1voto

LotPings Points 6795

Ça ne marche pas parce que :

  • vous commandez dossiers en reculant par date et en sautant la première.
    %F contiendra les noms des répertoires, alors que vous voulez des fichiers.

Vous avez besoin d'une approche en deux étapes,

  1. en itérant les dossiers, le mieux étant un for /D
  2. itérer les fichiers (en excluant les éventuels sous-dossiers) similaires à votre essai

for /D %D in (C:\Users\M\Desktop\Nowy3\*) do @for /f "skip=1 delims=" %F in ('dir "%D\*" /b/o-d/A-D') do @echo del "%D\%F"

Si la sortie semble correcte, retirez le Echo devant del

0voto

Mark Points 11

J'ai essayé ce code mais il ne trouve aucun fichier.

for /D %D in (C:\Users\MZ\Desktop\Nowyfolder3\*) do @for /f "skip=1 delims=" %F in ('dir "%D\*" /b/o-d/A-D') do @echo del "%D\%F"

Fichier non trouvé Fichier non trouvé Fichier non trouvé Fichier non trouvé

Lorsque je supprime *, les fichiers apparaissent dans Nowyfolder3 Je devrais peut-être utiliser une autre méthode pour lister tous les sous-dossiers, et non * ?

Ok, j'ai trouvé la raison, les sous-dossiers ont des sous-dossiers suivants donc il doit y avoir l'option suivante dans le code, mais j'ai essayé tout seul

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