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 :

suppression récursive d'un dossier spécifique [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut suppression récursive d'un dossier spécifique
    Bonjour à tous,
    J'aimerais supprimer un dossier qui se retrouve plusieurs fois dans mon arborescence , je connais bien son nom le problème c'est que le faire manuellement me fait perdre énormément du temps et c'est peu sûr .
    Donc j'aimerais savoir si vous connaissez une commande dos ou un utilitaire qui me permettrait d'automatiser cette tache merci .

  2. #2
    Membre Expert
    Avatar de Senji
    Inscrit en
    Juillet 2008
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 144
    Par défaut
    un script batch suffirait
    fais un tour dans la FAQ BATCH tu trouveras des scripts de recherche et tu le combine avec la suppression.

    bye

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut
    Merci pour la réponse,
    bon déja le batch je m'y connais pas trop mais j'ai quand même éssayer de tripoter quelque chose mais en vain .
    Personne n'aurait une solution ou un bout de script (si c'est pas trop demandé bien sur ) car à ce rythme je risque d'y passer la journée à débugger du batch !

  4. #4
    Expert confirmé
    Avatar de shawn12
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2006
    Messages
    3 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2006
    Messages : 3 368
    Par défaut
    Tu peux créer une tâche planifiée qui fait appel à la commande RMDIR.

    Pour de l'aide, va dans une invite de commandes et tapes :

  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
    salut,

    t'as au moins fais un tour dans la FAQ ?

  6. #6
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut
    Merci pour votre réponse ,
    le problème avec rmdir c'est qu'il supprime tous les dossiers de l'arborescence y compris le dossier parent lui même .
    IL ne correpond pas du tout à ce que je veux faire. Je m'explique encore de façon que ce soit plus clair :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dossierparent/ 
                       sousdossier1
                       dossier_a_supprimer
                       sousdossier2/
                                        dossier_a_supprimer
                                        sousdossier3/
                                                         dossier_a_supprimer
                                                          sousdossier4/ 
                                                                           dossier_a_supprimer
    PS: dossier_a_supprimer a toujours le même nom

  7. #7
    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
    et qui a dit que RMDIR efface toute l'arborescence ?

    backup = le nom de ton dossier
    D: = la racine

    enlève le echo si les chemins correspondent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%Z In ('dir /ad/s/b "D:\Backup"') DO echo RD /S/Q "%%Z"

  8. #8
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut
    Merci pour le bout de code je le teste de suite ,
    heu petit rectificatif c'est vrai que rmdir ne supprime pas tous les dossiers en fait je pensais à la commande rmdir /S /Q

  9. #9
    Membre Expert
    Avatar de Senji
    Inscrit en
    Juillet 2008
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 144
    Par défaut
    voilà
    la ligne du for doit rester entière, donc pas de retour à la ligne.
    t'as plus qu'à modifier le nom du fichier.
    il va le chercher sur le C et D puis le supprimer

    bye
    Fichiers attachés Fichiers attachés

  10. #10
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut
    Citation Envoyé par I'm_HERE Voir le message
    et qui a dit que RMDIR efface toute l'arborescence ?

    backup = le nom de ton dossier
    D: = la racine

    enlève le echo si les chemins correspondent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%Z In ('dir /ad/s/b "D:\Backup"') DO echo RD /S/Q "%%Z"
    Décidément ce batch ...
    j'ai transformé votre code par ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for /f "test=" %%Z 
        In ('dir /ad/s/b "D:\provisoire"') 
    	DO echo  RD /S/Q "%%Z"
    pause
    avec test le dossier à supprimer et j'ai tous mis dans un fichier .bat
    mais rien ne se passe après l'exécution.
    J'ai également tenter d'enlever le echo et là encore il ne supprime pas mon dossier "test" .
    p.s: Il faut que je précise quelque chose c'est ma première fois de faire du batch donc si j'ai fait quelque chose qu'il ne fallait pas (soyez un peu indulgent )

  11. #11
    Membre Expert
    Avatar de Senji
    Inscrit en
    Juillet 2008
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 144
    Par défaut
    le mien marche, je l'ai testé
    voir post plus haut
    bye

    c'est le fichier zip joint que j'ai mis post plus haut
    Fichiers attachés Fichiers attachés

  12. #12
    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
    alors essaye celui de Senji

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for /f "test=" %%Z 
        In ('dir /ad/s/b "D:\provisoire"') 
    	DO echo  RD /S/Q "%%Z"
    pause

  13. #13
    Membre Expert
    Avatar de Senji
    Inscrit en
    Juillet 2008
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 144
    Par défaut
    et je met même le code
    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
    
    for %%i in (C,D) do ( 
     if exist "%%i:\" set VrLetter=%%i& call :search %%i 
    ) 
    goto FinBoucle 
    :search 
    for /r "%VrLetter%:\" %%j in (MyFile.txt) do (
    if exist "%%j" echo %%j founded& del %%j /Q /F & echo %%j deleted
    )
    goto :eof
    :FinBoucle
    pause
    bye

    PS: code du FAQ modifié

  14. #14
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut
    Citation Envoyé par Senji Voir le message
    voilà
    la ligne du for doit rester entière, donc pas de retour à la ligne.
    t'as plus qu'à modifier le nom du fichier.
    il va le chercher sur le C et D puis le supprimer

    bye
    Merci pour le fichier
    dans mon cas c'est un répertoire que je veux supprimer est ce qu'en modifiant le script de façon à mettre un nom sans extension dans la partie il comprendrait qu'il s'agit d'un repertoire .
    P.s: j'ai testé mais il ne supprime pas le repertoire que je lui de demande .
    extrait du fichier modifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    
    for %%i in ('D:\provisoire') do ( 
     if exist "%%i:\" set VrLetter=%%i& call :search %%i 
    ) 
    goto FinBoucle 
    :search 
    for /r "%VrLetter%:\" %%j in (test) do if exist "%%j" echo %%j founded& del %%j /Q /F & echo %%j deleted
    
    goto :eof
    :FinBoucle

  15. #15
    Membre Expert
    Avatar de Senji
    Inscrit en
    Juillet 2008
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 144
    Par défaut
    voilà pour répertoire

    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
    
    for %%i in (C,D) do ( 
     if exist "%%i:\" set VrLetter=%%i& call :search %%i 
    ) 
    goto FinBoucle 
    :search 
    for /r "%VrLetter%:\" %%j in (repertoire) do (
    if exist "%%j" echo %%j founded& RMDIR %%j /S /Q & echo %%j deleted
    )
    
    goto :eof
    :FinBoucle
    pause

  16. #16
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut
    Citation Envoyé par Senji Voir le message
    voilà pour répertoire

    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
    
    for %%i in (C,D) do ( 
     if exist "%%i:\" set VrLetter=%%i& call :search %%i 
    ) 
    goto FinBoucle 
    :search 
    for /r "%VrLetter%:\" %%j in (repertoire) do (
    if exist "%%j" echo %%j founded& RMDIR %%j /S /Q & echo %%j deleted
    )
    
    goto :eof
    :FinBoucle
    pause
    Merci le test à l'air de fonctionner pour une partition (D,C).
    Mais en éssayant de modifier par le chemin exact ou trouver le dossier en faisant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for %%i in ("d:\chemin") do ( 
     if exist "%%i:\" set VrLetter=%%i& call :search %%i 
    )
    là il se plante .Il m'affiche "appuyer sur une touche pour continuer"
    est ce bien la syntaxe ??
    encore merci pour vos réponses .

  17. #17
    Membre Expert
    Avatar de Senji
    Inscrit en
    Juillet 2008
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 144
    Par défaut
    t'as pas besoin de modifier le chemin, t'as qu'à rajouter d'autres lecteur
    il va chercher dans les lecteurs tout seul
    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
    
    for %%i in (C,D,E,F,G,H,I,J,K,L,M,N) do ( 
     if exist "%%i:\" set VrLetter=%%i& call :search %%i 
    ) 
    goto FinBoucle 
    :search 
    for /r "%VrLetter%:\" %%j in (repertoire) do (
    if exist "%%j" echo %%j founded& RMDIR %%j /S /Q & echo %%j deleted
    )
    
    goto :eof
    :FinBoucle
    pause

  18. #18
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut
    Citation Envoyé par Senji Voir le message
    t'as pas besoin de modifier le chemin, t'as qu'à rajouter d'autres lecteur
    il va chercher dans les lecteurs tout seul
    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
    
    for %%i in (C,D,E,F,G,H,I,J,K,L,M,N) do ( 
     if exist "%%i:\" set VrLetter=%%i& call :search %%i 
    ) 
    goto FinBoucle 
    :search 
    for /r "%VrLetter%:\" %%j in (repertoire) do (
    if exist "%%j" echo %%j founded& RMDIR %%j /S /Q & echo %%j deleted
    )
    
    goto :eof
    :FinBoucle
    pause
    je crois qu'une petite précision s'impose :
    ce dossier je veux le supprimer à un endroit précis pas partout sur machine .

  19. #19
    Membre Expert
    Avatar de Senji
    Inscrit en
    Juillet 2008
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 144
    Par défaut
    voilà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    
    for /r "C:\dossier" %%j in (repertoire) do (
    if exist "%%j" echo %%j founded& RMDIR %%j /S /Q & echo %%j deleted
    )
    pause
    remplace C:\dossier par le tien

    bye

    mon resultat:
    C:\Downloads\a\repertoire founded
    C:\Downloads\a\repertoire deleted
    C:\Downloads\a\b\c\repertoire founded
    C:\Downloads\a\b\c\repertoire deleted
    C:\Downloads\a\b\c\d\repertoire founded
    C:\Downloads\a\b\c\d\repertoire deleted

  20. #20
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut
    Citation Envoyé par Senji Voir le message
    voilà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    
    for /r "C:\dossier" %%j in (repertoire) do (
    if exist "%%j" echo %%j founded& RMDIR %%j /S /Q & echo %%j deleted
    )
    pause
    remplace C:\dossier par le tien

    bye

    mon resultat:
    Merci beaucoup SENJI .
    j'ai mon script qui fonctionne nickel bonne soirée !!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Suppression récursive de dossiers
    Par totof49 dans le forum Langage
    Réponses: 3
    Dernier message: 11/12/2008, 14h44
  2. Réponses: 4
    Dernier message: 24/09/2007, 00h44
  3. avoir accés à un dossier spécifique en C
    Par Rniamo dans le forum C
    Réponses: 5
    Dernier message: 18/07/2007, 16h54
  4. [Bonne pratique] Tag de fichiers et dossiers spécifiques ?
    Par Beldom dans le forum Subversion
    Réponses: 5
    Dernier message: 11/07/2007, 10h13
  5. Suppression / Creation d'un dossier
    Par motrin dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 18/06/2006, 06h54

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