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 du contenu de plusieurs dossiers via leurs noms qui lui est aléatoire.


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2021
    Messages : 3
    Par défaut Suppression du contenu de plusieurs dossiers via leurs noms qui lui est aléatoire.
    Bonjour à tous.

    Depuis quelques temps dans la société ou je travail, j'essaye d'optimiser l'espace disque sur mes différents serveurs en nettoyant toutes les petites cochonneries temporaires qui sont générées par L'OS mais aussi par différents outils tels que Acrobat Reader, Java, Mozilla, Chrome etc...

    Ayant bien évidemment la flemme de tout nettoyer à la main, j'ai décidé de réaliser un script batch qui fait la sale besogne pour moi, malinx le lynx Actuellement mon script fonctionne parfaitement et je supprime bien tous les dossiers, sous-dossiers et fichiers que j'ai spécifié dans mon script. Cependant, en cherchant un peu plus, je me suis rendu compte que j'ai oublié un endroit qui est bien gourmand en terme de taille. Cet endroit est le suivant : "C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles\*.default". J'ai remarqué que pour certains utilisateurs, ce répertoire est plus qu'imposant car il peut parfois atteindre jusqu'à 2 Go, imaginez donc ce que cela peut représenter pour 100 utilisateurs. La ou je rencontre un problème est sur le nom du dossier, en effet celui est coupé en deux parties, une première qui est une chaine de caractère aléatoire, et la deuxième partie qui est une chaine de caractère unique toujours identique : ".default". Voici un exemple pour vous donner une idée "kdhfs.default"

    Ce que j'essaye de faire dans mon script, c'est de dire que tous les dossiers qui se terminent par ".default" dans le dossier "Profiles" peuvent être supprimés.

    Voici la partie du script que j'utilise pour effectuer ce que je souhaite :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /D %%x in ("C:\Users\%USERNAME%") do (
        del /F /S /Q "%%x\AppData\Local\Mozilla\Firefox\Profiles\*.default\"
    )

    Le problème est lié à la syntaxe que j'utilise, cependant je n'arrive pas à la corriger. Quand je lance le script, je prends le message suivant dans la tronche : "La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte".

    Ce que j'essaye de faire c'est de prendre la chaine de caractère ".default" et de dire ensuite que tout ce qu'il y a devant cette chaine peut être supprimé. C'est pour çà que j'essaye d'utiliser une wildcard. Cependant je pense que je m'y prends mal et après plusieurs recherches je suis complètement bloqué.

    J'ai réussi à faire ce que je souhaite sous powershell, mais ayant réaliser un gros script "de plus de 300 lignes" dans du batch avec des conditions dans tous les sens afin d'éviter de faire des bêtises, j'aimerai pouvoir rajouter cette petite ligne dans celui-ci afin de le compléter à 100%

    Merci à vous par avance pour votre aide !

    Cordialement,

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    2 remarques :

    - DEL sert à supprimer des fichiers, la commande pour supprimer un dossier c'est RMDIR
    - tu n'as pas besoin de boucle FOR

    Pour résumer ça donnerait ceci :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    RMDIR /S /Q "%LocalAppData%\Mozilla\Firefox\Profiles\*.default"

    Bizarre que tes profils Firefox soient stockés dans AppData\Local chez moi ils sont stockés dans AppData\Roaming

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2021
    Messages : 3
    Par défaut
    Merci beaucoup barnabe0057 !

    En effet petite erreur de ma part quand j'ai écris le topic, c'est bien dans AppData\Roaming.

    J'ai testé votre commande, et j'ai toujours le même problème. Quand je lance la commande ci-dessous j'ai toujours le même message d'erreur :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    RMDIR /S /Q "C:\Users\monutilisateur\AppData\Roaming\Mozilla\Firefox\Profiles\*.default"

    Quand je prends la même commande et que cette fois je viens y spécifier le nom du dossier ".default" manuellemenent, celle-ci fonctionne :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    RMDIR /S /Q "C:\Users\monutilisateur\AppData\Roaming\Mozilla\Firefox\Profiles\pxmc6alt.default"

    Je comprends donc que le problème est lié à la wildcard, mais je ne comprends pas vraiment pourquoi. Je continus de chercher de mon côté.

    Merci encore à vous !

    Cordialement,

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Autant pour moi, j'étais certain que la commande RMDIR acceptait une wildcard mais après vérification il s'avère que non.

    Donc tu auras bien besoin d'une boucle FOR :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%E in ('2^>nul dir /b /ad "%AppData%\Mozilla\Firefox\Profiles\*.default"') do rmdir /s /q "%%~dpnxE"

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2021
    Messages : 3
    Par défaut
    Pas de souci Barnabe, je tiens à vous remercier pour votre aide et votre patience !

    J'ai bien testé et la commande ne fonctionne pas de mon côté, mais je pense que c'est lié uniquement à la manière dont j'ai rédigé l'ensemble de mon script. J'ai donc décidé de me rediriger sur un script powershell qui correspond d'avantage à mes besoins c'est pour cela que je réponds tardivement par rapport à votre dernier message.

    Je mets donc à disposition ici un morceau de mon script powershell afin de permettre à d'autres personnes d'avoir une trame qui permet de supprimer des fichiers/dossiers dans des répertoires spécifiques qui ont des noms aléatoires avec une "extension" identique, dans mon cas ".default".

    Dans le script, j'ai laissé intentionnellement des traces, afin de pouvoir le tester avant de le mettre en production. A vous d'adapter la ligne "Remove-Item" en fonction de vos besoins.

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #Pour Mozilla Firefox
     
    try
    {
        write-host -ForegroundColor Blue "Suppression des fichiers temporaires de Firefox"
        Remove-Item -path "C:\Users\$env:USERNAME\AppData\Local\Mozilla\Firefox\Profiles\*.default\cache\*" -Recurse -Force -EA SilentlyContinue -Verbose
        write-host -ForegroundColor Blue "##### Fichiers temporaires de Firefox supprimes avec succes ! #####"
    }
    catch
    {
        write-host -ForegroundColor Red "Une erreur s'est produite lors de la suppression des temporaires de Firefox !"
        $_.Exception.Message
    }

    Merci encore à vous, en vous souhaitant une bonne journée !

    Cordialement

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Tu as définitif -ErrorAction sur SilentlyContinue, si il y a une erreur de suppression tu ne l'attrapera pas dans ton bloc catch.
    A quoi sert il du coup ?

Discussions similaires

  1. [PowerShell] Crée un dossier avec un nom qui n'est pas pré-défini
    Par Bilnako dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 03/02/2021, 03h13
  2. [Graphics View] Afficher le contenu d'un dossier via son chemin dans un QTreeView
    Par ahamada1995 dans le forum Qt
    Réponses: 1
    Dernier message: 09/10/2017, 16h41
  3. Réponses: 0
    Dernier message: 26/09/2014, 10h54
  4. Suppression du contenu d'un dossier
    Par sam01 dans le forum Langage
    Réponses: 3
    Dernier message: 11/02/2010, 19h17
  5. supprimer contenu de plusieurs répertoires via un script
    Par TiDjY dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 26/04/2007, 10h54

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