Partage
  • Partager sur Facebook
  • Partager sur Twitter

batch fichiers à répertoire multiples

find & erase

Sujet résolu
    25 août 2023 à 8:32:33

    Bonjour,

    Souhaitant votre aide pour mon problème qui est le suivant :

    J'aimerai trouver dans la partition D: (ainsi que tous ses sous-répertoires) les dossiers dont les noms sont tous identiques (ex : mondossier), dans le but de les trouver par la suite les supprimés.

    Est-il possible de le faire en *.bat.

    Merci.

    • Partager sur Facebook
    • Partager sur Twitter
      25 août 2023 à 17:07:24

      il y a des utilitaires qui existent déjà pour ça, comme celui de ce tuto https://www.pcastuces.com/pratique/windows/rechercher_supprimer_doublons/page1.htm

      Trouver les dossiers (ou fichiers) de même est une chose, mais il faut ensuite des infos sur ceux-ci pour connaitre les différences entre les doublons (emplacement, nombre de fichiers, date des fichiers, etc) pour aider à la décision de suppression.

      • Partager sur Facebook
      • Partager sur Twitter
        26 août 2023 à 12:27:19

        Merci pour votre réponse.

        Cependant, la proposition dans le lien est une application *.exe. Les machines concernées comporte souvent des utilisateurs invités, et le fait de le faire en batch facilite les droits pour la suppression au niveau de chaque utilisateur.

        • Partager sur Facebook
        • Partager sur Twitter
          28 août 2023 à 13:02:11

          pas sûr de bien comprendre ta problématique des droits, de mon point de vue, un batch est plus dangereux qu'un exe (un batch ça se modifie avec un simple éditeur de texte). Une application tu peux l'installer pour tous les utilisateurs (ça dépend des applis certes), dans tous les cas, on ne peut modifier que les fichiers surlesquels l'utilisateur qui lance l'application a le droit de le faire.
          • Partager sur Facebook
          • Partager sur Twitter
            30 août 2023 à 11:48:42

            Bonjour, je vous décrit ci-suit mon problème :

            - Les utilisateurs ont besoin de l'accès via usb pour les transferts des fichiers. Ne tenant pas compte des divers antivirus installés pour chaque machine, un virus (eg: x) crée des dossiers et sous dossiers à l'insertion des clés usb. Les utilisateurs étant sur terrain ou dans des zone où l'accès à internet (pour les mises à jour) est impossible.

            - Sur chaque machine, il y a déjà plusieurs compte dont administrateur et superviseur, protégés par mot de passe. Seul le compte "invité" peut être utilisé par l'utilisateur final. Dans le cas où on lance un *.exe, un mot de passe sera demandé et nous ne voudrions pas le faire.

            - Les fichiers qui ne sont pas des des dossiers peuvent déjà être effacés par le commande "rmdir D:\dossier /s /q"

            - Les fichiers qui sont répertoriés peuvent être effacés par la commande "del D:\dossier.Bat /s /q"

            Mon problème est la suite, il y a encore un dossier qui se répand sur chaque dossier du répertoire D (eg : nouveau_dossier), ainsi que dans les sous répertoires de chaque dossier, pouvant être supprimé "manuellement". Et je voudrais le faire en batch pour que chaque utilisateur final puisse le lancer chacun via batch. Si possible. Merci bien.

            • Partager sur Facebook
            • Partager sur Twitter
              30 août 2023 à 19:34:35

              Rayan7937 a écrit:

              Bonjour, je vous décrit ci-suit mon problème :

              - Les utilisateurs ont besoin de l'accès via usb pour les transferts des fichiers. Ne tenant pas compte des divers antivirus installés pour chaque machine, un virus (eg: x) crée des dossiers et sous dossiers à l'insertion des clés usb. Les utilisateurs étant sur terrain ou dans des zone où l'accès à internet (pour les mises à jour) est impossible.

              il faut peut-être nettoyé les clés avant utilisation (réglons le problème à la source si possible avant tout)

              - Sur chaque machine, il y a déjà plusieurs compte dont administrateur et superviseur, protégés par mot de passe. Seul le compte "invité" peut être utilisé par l'utilisateur final. Dans le cas où on lance un *.exe, un mot de passe sera demandé et nous ne voudrions pas le faire.

              En principe, ça bloque surtout quand le .exe est un installeur, un programme ne nécessitant pas d'installation ne devrait pas poser de souci, mais c'est posible aussi que tout exe soit bloqué

              - Les fichiers qui ne sont pas des des dossiers peuvent déjà être effacés par le commande "rmdir D:\dossier /s /q"

              - Les fichiers qui sont répertoriés peuvent être effacés par la commande "del D:\dossier.Bat /s /q"

              Là aussi ça dépend des droits, mais "rm dir XX /s /q efface le dossier et son contenu, donc je ne comprends pas ta phrase "Les fichiers qui ne sont pas des des dossiers peuvent déjà être effacés par le commande".
              Le /s de ta commande del supprime le fichier indiqué dans tous les sous-répertoires du répertoire d'où est lancée la commande

              Mon problème est la suite, il y a encore un dossier qui se répand sur chaque dossier du répertoire D (eg : nouveau_dossier), ainsi que dans les sous répertoires de chaque dossier, pouvant être supprimé "manuellement". Et je voudrais le faire en batch pour que chaque utilisateur final puisse le lancer chacun via batch. Si possible. Merci bien.

              Si je reprends ton exemple, tu sembles vouloir supprimer un .bat, ça ne serait pas plus simple d'interdire aussi l'exécution de ce type de fichier (en plus des exe, si c'est vraiment le cas, mais j'ai un doute).
              Donc, je pense que tes 2 commandes devraient faire le travail, à partir du moment où on connait le nom du dossier
              En se basant sur ce site (https://expert-only.com/fr/ms-dos/liste-recursive-des-fichiers-en-cmd/ ), une commande de type 

              dir /s /ad /b bin

              va renvoyer tous les répertoires dont le nom contient "bin" (dans mon exemple) à partir du répertoire dans lequel la commande est lancée. Il faudra ensuite parcourir les résultats via un for 

              • Partager sur Facebook
              • Partager sur Twitter
                4 septembre 2023 à 6:55:25

                Merci pour votre réponse.

                Le batch ci-suit a pu le résoudre :

                "@echo off

                setlocal

                set "targetFolder=E:"

                set "folderName=essai"

                echo Recherche et suppression des dossiers %folderName%...

                for /d /r "%targetFolder%" %%d in (%folderName%) do (

                    echo Suppression du dossier "%%d"

                    rmdir /s /q "%%d"

                )

                echo Terminé.

                endlocal"

                Vous remerciant pour votre aide. Bonne continuation.

                • Partager sur Facebook
                • Partager sur Twitter

                batch fichiers à répertoire multiples

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown