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 en fonction de leur date [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut Supprimer des fichiers en fonction de leur date
    Bonjour,

    J'utilise une machine qui n'a plus la possibilité de démarrer son Windows 95, donc j'utilise DOS pour faire ce que je souhaites faire avec (bon pas grand chose). Et je souhaiterais là supprimer des fichiers d'un répertoire. Malheureusement ils sont beaucoup. Donc je souhaiterais savoir s'il était possible de supprimer les fichiers inférieur à une certaine date dans ce dossier avec la commande del ou bien erase.

    Si quelqu' un a une idée, je suis preneur car j'ai essayé mais sans succès.

    Merci d'avance

    Charlie
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    On a déjà traité ce cas, regarde ici

  3. #3
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    Ok je vais regarder ce code. Bon je suis moins que débutant en batch mais je vais essayer.
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  4. #4
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    Avec mes connaissance en batch, j'ai réussi à écrire cela qui ne fonctionne pas du tout.
    Guardian je me suis servi du post sur ce sujet mais j'ai quelques soucis à comprendre certaines lignes du genre :

    for /r "%~1\" %%i in (*.*) do set VrChmFch=%%i& set VrNamFch=%%~pnxi& set VrDatFch=%%~ti& call :suppression
    Ici, j'ai compris que la boucle for listait tous les fichiers et les mettaient dans la variable %~1. Mais ce que je n'ai pas saisi c'est ce que font les variables VrChmFch, VrNamFch et VrDatFch

    if %VrDatFch:~6,4% leq "%date%" del "%VrChmFch%" "%~p0:\*.*" /q /f
    Ici, j'ai compris que les fichiers doivent être supprimés jusqu'à la date de la variable date dans le répertoire courant.

    Mais snifff, le programme ne fait rien.

    Si quelqu'un pourrait m'aider, cela m'arrangerait.
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  5. #5
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    VrChmFch = chemin complet du fichier
    VrNamFch = nom du fichier
    VrDatFch = date du fichier


    Donc tu veut supprimer tout les fichier antérieur à la date actuel ?

    Pourquoi tu a mi %~p0:, Tu veut récupérer la lettre du lecteur ? (parce que la tu récupére le chemin, pour la lettre c'est d et pas p %~d0)

    Fait voir ton code complet, je vai essayer d'arranger ca

  6. #6
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    Bon j'ai oublié de poster mon code c'est vrai.

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    @echo off
    echo Cet outil va supprimer les fichiers non utilisés jusqu'à une certaine date
     
    Set /p date= Entrez la date jusqu'à laquelle vous voulez supprimer les fichiers :
    if "%date%"=="" goto fin
     
    for /r "%~1\" %%i in (*.txt) do set VrChmFch=%%i& set VrNamFch=%%~pnxi& set VrDatFch=%%~ti& call :suppression
    goto finsuppression
     
    :suppression
    if  %VrDatFch:~6,4% leq "%date%" del "%VrChmFch%" "%~p0:\*.txt" /q /f
     
    goto :eof
    :finsuppression
     
    :fin
    echo.
    echo Fin du programme, appuyez sur une touche pour quitter l'application
    Pause > NUL

    Hihi
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  7. #7
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Au fait mon code ne fonctionne que par l'année, pas le jour ni le mois, là je sèche

  8. #8
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    Donc tu veut supprimer tout les fichier antérieur à la date actuel ?
    Nan, en fait je souhaites supprimer les fichiers antérieur à la date que l'utilisateur mettra dans la variable date.

    Pourquoi tu a mi %~p0:, Tu veut récupérer la lettre du lecteur ? (parce que la tu récupére le chemin, pour la lettre c'est d et pas p %~d0)
    Je pensais qu'en fait %~p0 était le chemin du répertoire courant
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  9. #9
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    Au fait mon cod ene fonctionne que par l'année, pas le jour ni la moi, le je séche
    Mais sinon pour l'année ça serait toujours ça.
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  10. #10
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par charlix Voir le message
    Nan, en fait je souhaites supprimer les fichiers antérieur à la date que l'utilisateur mettra dans la variable date.
    oui je viens de m'en apercevoir avec le code que tu viens de poster

    Citation Envoyé par charlix Voir le message
    Je pensais qu'en fait %~p0 était le chemin du répertoire courant
    Non, pour le chemin complet du répertoire courant c'est ou bien %cd%, ou bien %~dp0 (sachant que d récupère la lettre du lecteur et p le reste du chemin, n récupère le nom du batch et x l'extension)

  11. #11
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par charlix Voir le message
    Mais sinon pour l'année ça serait toujours ça.
    alor demande a l'utilisateur de ne saisir que l'année

  12. #12
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    Bon j'ai fait quelques petites retouches par rapport à ce que tu m'as dit mais ça fait toujours rien !!!

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    @echo off
    echo Cet outil va supprimer les fichiers non utilisés jusqu'à une certaine date
     
    Set /p date= Entrez la date jusqu'à laquelle vous voulez supprimer les fichiers :
    if "%date%"=="" goto fin
     
    for /r "%~1\" %%i in (*.txt) do set VrChmFch=%%i& set VrNamFch=%%~pnxi& set VrDatFch=%%~ti& call :suppression
    goto finsuppression
     
    :suppression
    if  %VrDatFch:~6,4% leq "%date%" del "%VrChmFch%" "%~dp0:\*.txt" /q /f
     
    goto :eof
    :finsuppression
     
    :fin
    echo.
    echo Fin du programme, appuyez sur une touche pour quitter l'application
    Pause > NUL

    Ouai en considérant qu' lon rentre que l'année
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  13. #13
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    enléve les deux point en rouge pour voir:
    if %VrDatFch:~6,4% leq "%date%" del "%VrChmFch%" "%~dp0:\*.txt" /q /f

  14. #14
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    et je ne comprend pas ton del:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    del "%VrChmFch%" "%~dp0:\*.txt" /q /f
    tu veux supprimer VrChmFch (le fichier listé par la boucle), mais tu veux aussi supprimer tous les fichiers .txt du répertoire courant ?
    si c'est le cas ajoute une virgule entre les deux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    del "%VrChmFch%", "%~dp0\*.txt" /q /f
    ou un point virgule je ne sais plus

  15. #15
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    ça ne change rien, le programme tourne et arrive même à la fin du code mais il ne m'a pas effacé tous les fichiers .txt
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  16. #16
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    tu as essayé avec la virgule et le point virgule ?

    tu as bien enlevé les deux points ?

  17. #17
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    Ba pour être franc, je ne comprend pas bien tout encore. Je me suis servi de ton code et j'ai essayé de le mettre à ma sauce en fonction de mes besoins.

    et je ne comprend pas ton del:

    del "%VrChmFch%" "%~dp0:\*.txt" /q /f

    tu veut supprimer VrChmFch (le fichier lister par la boucle), mais ti veut aussi supprimer tous les fichier .txt du répertoire courant ?
    si c'est la cas ajoute une virgule entre les deux:
    Que dois-je donc enlever alors ?
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  18. #18
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    essaye comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    del "%VrChmFch%", "%~dp0\*.txt" /q /f
    ou comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    del "%VrChmFch%"; "%~dp0\*.txt" /q /f

  19. #19
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    ouai, j'ai essayé mais cela ne donne rien.
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  20. #20
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    ben je ne sais pas alors

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

Discussions similaires

  1. [Batch] supprimer des fichiers en fonction de la date de creation
    Par choupinou22 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 13/04/2015, 20h47
  2. supprimer des fichiers en fonction de leur extension
    Par nekcorp dans le forum Général Python
    Réponses: 6
    Dernier message: 14/05/2014, 18h26
  3. Supprimer des fichiers en fonction d'une date
    Par Sh4dow49 dans le forum Administration système
    Réponses: 1
    Dernier message: 02/06/2009, 22h36
  4. Supprimer des fichiers en fonction de la date sous DOS
    Par charlix dans le forum Windows
    Réponses: 0
    Dernier message: 21/03/2008, 08h18
  5. Récuperer des fichiers en fonction de leur ancienneté
    Par julien000 dans le forum Langage
    Réponses: 3
    Dernier message: 24/07/2006, 17h09

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