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 à partir d'une liste contenu dans un fichier txt [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut Supprimer des fichiers à partir d'une liste contenu dans un fichier txt
    Bonjour à tous,

    j'ai un fichier texte que l'on va nommer c:\FichiersASupprimer.txt
    donc le contenu est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    c:\a.txt
    c:\temp\b.csv
    c:\test\c.doc
    et qui comprend donc des noms complets de fichiers que je souhaiterai supprimer en batch à partir d'un autre fichier .bat.

    Comment faire svp ?
    Je ne sais pas si c'est compliqué ou non à réaliser en Batch... !?? Sinon si c'est une usine à gaz, peut-être en vbs !?
    Qu'en pensez-vous ?


    Merci.

    Dams'

  2. #2
    Membre du Club
    Homme Profil pro
    Apprenti ingenieur administrateur systèmes
    Inscrit en
    Octobre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Apprenti ingenieur administrateur systèmes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 67
    Points : 41
    Points
    41
    Par défaut
    Salut a toi

    Alors essaye peut etre ce script que j'ai essayer pour supprimer des backup de BDD.

    Il te faut telecharger forfiles sur internet c'est un executable
    Puis tu le mets dans ton dossier ou sont situés les fichiers a supprimer.

    Voici le script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set dossier_txt=D:\fichierstxt\etc..
    %dossier_txt%\forfiles -p%dossier_txt% -s -m*.txt  -c"cmd /c del @FILE"
    J'espère que ca aura marché

  3. #3
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2011
    Messages : 223
    Points : 294
    Points
    294
    Par défaut
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    set fichier_source=c:\FichiersASupprimer.txt
    for /f %%i in (%fichier_source%) do erase /Q/F %%i
    PAUSE
    voilou...

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par ludo40190 Voir le message
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    set fichier_source=c:\FichiersASupprimer.txt
    for /f %%i in (%fichier_source%) do erase /Q/F %%i
    PAUSE
    voilou...
    bon, ben, je suis parti sur la solution de ludo, car cela ressemble à ce que je connaissais un peu...

    ça marche, par contre dès lors que dans le chemin du fichier il y'a un espace dans le nom, ça ne marche plus...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    c:\a.txt
    c:\temp\b.csv
    c:\test\c.doc
    c:\chemin avec espaces\problèmes\fichier avec espaces.docx
    Comment faire ?
    merci

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    c'est bon j'ai trouvé comme un grand
    Il fallait rajouter "delims="

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%i in (%fichier_source%) do erase /Q/F %%i

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    mais bon j'ai encore un problème, dès qu'il y'a des caractères spéciaux dans le chemin ou le nom du fichier à supprimer...

    Des idées ?

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par damsmut Voir le message
    c'est bon j'ai trouvé comme un grand
    Il fallait rajouter "delims="

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%i in (%fichier_source%) do erase /Q/F %%i


    ... en fait je me suis trompé, ça ne marche quand même pas car le nom n'est pas entre guillemets...


    Bon ça j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%i in (%fichier_source%) do erase /Q/F "%%i"

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par damsmut Voir le message
    mais bon j'ai encore un problème, dès qu'il y'a des caractères spéciaux dans le chemin ou le nom du fichier à supprimer...

    Des idées ?
    J'ai aussi trouvé :

    je jongle avec

    chcp 1252 et chcp 850
    pour passer du jeu de caractères dos standard au jeu de caractères Windows

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    encore une dernière question pour finaliser mon script...
    En fait mon fichier source a une structure un peu bizarre : il contient pour chaque ligne 6 espaces devant le nom du fichier

    j'ai vu qu'on peut utiliser ce code pour omettre les 6 1ers caractères d'une variable

    exemple :

    mais comment l'intégrer ici ???
    ce que j'ai fait ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%i in (%fichier_source%) do erase /Q/F "%%i:~6%"

  10. #10
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2011
    Messages : 223
    Points : 294
    Points
    294
    Par défaut
    avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    setlocal enabledelayedexpansion
    for /f %%i in (%fichier_source%) do (
    set fic=%%i
    erase /Q/F "!fic:~6!"
    )

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par ludo40190 Voir le message
    avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    setlocal enabledelayedexpansion
    for /f %%i in (%fichier_source%) do (
    set fic=%%i
    erase /Q/F "!fic:~6!"
    )
    ça marche ! merci beaucoup !

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

Discussions similaires

  1. Extraction des genes d'un fichier à partir d'une liste
    Par hin175 dans le forum Bioinformatique
    Réponses: 3
    Dernier message: 11/08/2014, 19h44
  2. [XL-2010] Macro pour renommer des fichiers à partir d'une liste de nom de fichiers
    Par thomahh dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/01/2013, 17h03
  3. Réponses: 1
    Dernier message: 07/04/2011, 20h28
  4. [XL-2003] Problème pour renommer un fichier à partir d'une variable contenu dans une cellule
    Par the-geut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/05/2010, 11h43
  5. Sélectionner un fichier à partir d'une liste filtrée
    Par Lenaick dans le forum C++Builder
    Réponses: 7
    Dernier message: 14/03/2006, 11h16

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