IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Supprimer des fichiers dans un répertoire [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 23
    Par défaut Supprimer des fichiers dans un répertoire
    Bonjour,

    J'ai une question.

    J'ai un répertoire dans lequel se trouvent des fichiers txt nommés de la façon
    suivante :

    ABXXXXXX _ MM-YYYY _ ZZ.txt

    AB sont des caractères qui ne changent jamais.

    XXXXXX sont des caractères variables

    MM-YYYY sont Mois et Années

    ZZ varie en fonction de XXXXXX

    Ainsi je peux avoir un répertoire contenant :

    AB111111 _ MM-YYYY _ 01.txt
    AB111111 _ MM-YYYY _ 02.txt
    AB111111 _ MM-YYYY _ 03.txt
    ABSDFGHJ _ MM-YYYY _ 01.txt
    ABSDFGHJ _ MM-YYYY _ 02.txt
    AB345678 _ MM-YYYY _ 01.txt

    Ce que je souhaite c'est que le batch supprime les fichiers :

    AB111111 _ MM-YYYY _ 01.txt
    AB111111 _ MM-YYYY _ 02.txt
    ABSDFGHJ _ MM-YYYY _ 01.txt

    Mais conserve :

    AB111111 _ MM-YYYY _ 03.txt
    ABSDFGHJ _ MM-YYYY _ 02.txt
    AB345678 _ MM-YYYY _ 01.txt

    Donc la valeur de ZZ la plus élevée pour chaque fichier et ce quelque soit le nombre de fichiers dans le répertoire.

    Je me doute que la solution est dans une boucle for mais je n'arrive pas à enchaîner plusieurs commandes derrière le do.

    Merci de votre aide et de votre mansuétude vu mon niveau ...

    @ bientôt.

  2. #2
    Membre émérite
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Par défaut
    salut Fabdeuche et bienvenue sur le forum.

    Je remarque que c'est la troisième discussion que tu ouvres sur le même sujet, avec la même demande.

    -> La première

    -> La deuxième

    Cette manière de faire n'est pas bonne, elle pollue le forum et disperse les réponses.

    Tu dois en choisir une, et marquer les deux autres en délestage pour qu'elles soient supprimées. N'oublie pas de préciser le motif.

    Une fois que ce sera fait, on te donnera un petit coup de pouce, à condition bien sûr, que tu y mettes du tien.

    Bonne continuation.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 23
    Par défaut
    Bonjour,

    Désolé de mettre autant dispersé.

    Mon but n'est pas effectivement de polluer le Forum.

    J'ai donc mis "en délestage" mes deux précédents posts.

    Par avance merci et mille excuse.

  4. #4
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    pas bien tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off
    setlocal enabledelayedexpansion
    
    for /f "tokens=1-3delims=_" %%a in ('dir/a-d/b "AB*_*_*"') do (
      set a=%%a
      if "!a!" neq "!b!" (echo/%%a_%%b_%%c) >> #exclude#
      set b=!a!
    )
    for /f "delims=" %%a in ('dir/a-d/b "AB*_*_*"^|findstr /vig:#exclude#') do (
      echo del "%%a"
    )
    del #exclude#
    pause
    EDIT: le script est fait suivant tes exemples de noms de fichiers qui comportent des espaces entre chaque token.

  5. #5
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    OoPS !! j'ai pas vu le post de maxim_um et les liens qu'il a donné..c'est vrai qu'il y a redondance de posts de Fabdeuche


  6. #6
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 23
    Par défaut
    Citation Envoyé par I'm_HERE Voir le message
    salut,

    pas bien tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off
    setlocal enabledelayedexpansion
    
    for /f "tokens=1-3delims=_" %%a in ('dir/a-d/b "AB*_*_*"') do (
      set a=%%a
      if "!a!" neq "!b!" (echo/%%a_%%b_%%c) >> #exclude#
      set b=!a!
    )
    for /f "delims=" %%a in ('dir/a-d/b "AB*_*_*"^|findstr /vig:#exclude#') do (
      echo del "%%a"
    )
    del #exclude#
    pause
    EDIT: le script est fait suivant tes exemples de noms de fichiers qui comportent des espaces entre chaque token.
    Salut,

    Merci beaucoup....

    Je vais étudier cela....

    Pour la commande dir /a-d/b je pense qu'il s'agit de dir /a/d/b

    En tout cas je regarde de plus près ce batch et je reviens vers vous si il répond à mon besoin....

    Merci beaucoup....

    @+

  7. #7
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Non pour le dir c'est bien dir /a-d, ce n'est pas la même chose que /a/d.

    Dir /a-d permet de n'avoir que les fichiers et pas les repertoires.


    Juste en passant que tu ne perdes pas du temps la dessus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer des fichiers dans un répertoire
    Par Gnux dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 08/05/2012, 08h49
  2. Récupération du noms des fichiers dans un répertoire
    Par tulipelover dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 03/08/2008, 21h47
  3. Impossible de créer des fichiers dans un répertoire
    Par isabelle674 dans le forum Solaris
    Réponses: 11
    Dernier message: 24/01/2008, 00h04
  4. Réponses: 1
    Dernier message: 18/01/2008, 15h19
  5. lire le nom des fichiers dans un répertoire
    Par wonderboutin123 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/11/2007, 04h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo