MS-DOS ne marche pas

Bonjour,

Voila j'ai fais un petit batch pour supprimer certains dossiers et fichiers dans mes "Program Files" mais malheureusement je constate que lorsque j'exécute le batch la fenêtre MS-DOS s'ouvre et pas de message d'erreur mais aucun des fichiers ou dossiers n'a été supprimer! Je pense que sa peut venir du fait que les éléments dans "C:\Program Files\" sont protégés.
Si c'est le cas comment passer outre cette protection, et si là n'est pas le probleme où est-il?

Merci d'avance.
Configuration: Windows Vista
Firefox 3.0.3

21 réponses

  1. Contributeur
    Salut,
    Si tu veux vraiment les supprimer, tu peux utiliser le logiciel unlocker.
    Donc par programmation, c'est possible. Mais ça va demander de la réflexion. A creuser de ce côté si le source d'un logiciel libre équivalent existe.
    Cdlt
    0
    1. Bonsoir,

      effectivement, la syntaxe du 2 eme code est incorrecte remplace-la par

      REN "C:\Program Files\audiograbber\*.dll"  *.txt


      mais avant tout verifie s'il y a des fichiers *.dll dans le répertoire audiograbber :

      dir /b /a-d  "C:\Program Files\audiograbber\*.dll"
      0
      1. C'est sympa de chercher des solutions I'm Here mais à mon avis laissons tombé car rien n'y fait je pense que c'est une nouvelle mesure de sécurité de Vista les fichiers protégés sont intouchables :S. Merci à vous deux de vos aides :)
        0
    2. Non rien à faire aucune commande MS-DOS n'arrive à intervenir sur ce répertoire. Mais sur des fichiers non-protégés ex Bureau la il n'y a pas de soucis.

      Sinon sur ton premier code I'm Here j'ai deux messages dans la fenêtre MS-DOS:

      Fichier introuvable - C:\Program Files\
      Impossible de trouver C:\Program Files\audiograbber\*.dll

      et pour ton dernier code voila le résultat:

      Syntaxe de la commande incorrecte.
      0
      1. Bonjour,

        les chemins qui comportent des espaces doivent se mettrent entre guillemets.

        par conséquent :

        @Echo off
        
        ATTRIB -R -S "C:\Program Files\" /S /D
        DEL /S /Q /F /AS "C:\Program Files\audiograbber\*.dll"
        
        PAUSE>NUL


        Si ça ne marche pas alors essaye sur des répertoires autres que C:\Program Files\ pour voir si le problème ne concerne que ce répertoire

        **************

        autre alternative :

        essaye de renommer tes *.dll en *.txt ce qui va donner :

        REN "C:\Program Files\audiograbber\*.dll" "C:\Program Files\audiograbber\*.txt"


        puis essaye d'effacer tous les *.txt (en prenant garde de ne pas avoir de txt avant cette démarche dans le même répertoire..)

        0
        1. Fiddy merci de t'intéresser d'abord et ensuite tu pourrai pas me faire la ligne que je devrais faire parce que avec les attribues je suis perdu :S
          0
          1. Contributeur
            Salut,
            J'ai survolé vite fait la conversation.
            As-tu essayé d'appliquer attrib -s -r -h avant de le supprimer avec del ?
            Cdlt
            0
            1. Je continue de regarder de mon côté si je trouve quelque chose je te fais signe,

              Alors, à bientôt peut-être,
              0
              1. C'est déja très sympa de ta part de m'avoir aidé depuis hier et de ne pas avoir laisser tombé, tu as fait plus que j'aurais espéré. A vrai dire j'ai déja essayé pas mal d'attributs et tout mai aucun résultat... Je pense vraiment qu'aucune commande MS-DOS ne pourra intervenir sur des fichiers protégés de Vista. Sa doit, à mon avis, être une mesure de sécurité prise par Microsoft dans leur dernière version. Je vais essayé de me mettre au C++, qui me parrait très compliqué en espérant que sa soit possible avec se langage.

                En tout cas merci beaucoup de ton aide.

                A bientôt.
                0
                1. Le plus embêtant, en l'occurrence est que ça fonctionne correctement chez moi. J'espérais le contraire en faisant ces tests car cela m'aurait permis d'essayer les différents paramètres des commandes DELETE et ERASE, notamment les attributs. On aurait bien fini par trouver une solution. Mais là je ne sais plus quoi faire, ni quoi te dire sinon que tu essaies une à une les différentes options de ces commandes (en prenant les précautions d'usage; sauvegardes éventuelles, environnement de test) du moins celles des options qui s'apparentent au problème. Je ne peux malheureusement pas le faire pour la raison évoquée plus haut, ça ne démontrerait rien mon environnement ne réagit pas de manière identique au tien et ce, de manière restrictive.
                  0
                  1. Non lorsque je tape help DEL j'ai absolument pareil que le tient!
                    0
                    1. Bonsoir,

                      Je viens d'effectuer un test chez moi (Windows XP) ça fonctionne correctement. Que les fichiers soient protégés ou non protégés et quelque soit l'extension. Il doit, en effet y avoir une particularité sous Vista, ce serait bien que tu fasses un "help DEL" sous l'invite de commandes et que tu compares l'énoncé qui s'affichera à la console avec celui que je t'ai posté, il y aura peut-être une indication (ou une différence) concenant les fichiers protégés.
                      0
                      1. Bonsoir,
                        Bon j'ai essayé se que tu as proposé et le résultat est simple :
                        -Protégés : Marche Pas
                        -Non Protégés : Marche
                        0
                        1. Bonjour,

                          Il serait intéressant de vérifier si la même commande fonctionne sur des fichiers :

                          - non protégés (un seul fichier suffit) créés pour la circonstance avec l'extension .dll
                          - protégés (un seul fichier suffit) créés pour la circonstance avec une extension .dll
                          - non protégés (un seul fichier suffit) créés pour la circonstance avec une extension .txt par exemple.
                          - protégés (un seul fichier suffit) créés pour la circonstance avec une extension .txt.
                          dans un même répertoire de test :

                          Une exécution avec :
                          del /F C:\Program Files\test\*.dll
                          Une autre exécution avec :
                          del /F C:\Program Files\test\*.txt
                          Et pourquoi pas une autre exécution avec :
                          del /F C:\Program Files\test\*.*

                          Cela permettrait de s'assurer si ,oui ou non, c'est la protection en écriture qui empêche la commande de s'exécuter convenablement.
                          0
                          1. Non sa ne marche pas... Mais je crois que le problème vien du fait que j'ai Vista et je pense que dans Vista un Batch ne peut pas intervenir sur un fichier système (protégé). En tout cas merci pour ton aide :)
                            Si quelqu'un a une solution je suis preneur (même si j'ai plus d'espoir)
                            0
                            1. Essaie comme celà :

                              del /F C:\Program Files\audiograbber\*.dll
                              0
                              1. Toujours rien :S il faut dir que je n'ai pas très bien compris comment me servir de ton aide :S
                                0
                                1. Ca peut peut-être répondre au problème :

                                  C:\Documents and Settings\Christian\Mes documents\BATCH_files>help del
                                  Supprime un ou plusieurs fichiers.
                                  
                                  DEL /P /F /S /Q [/A[[:]attributs]] noms
                                  ERASE /P /F /S /Q [/A[[:]attributs]] noms
                                  
                                    noms          Spécifie une liste d'un ou plusieurs fichiers ou répertoires.
                                                  Les caractères génériques peuvent être utilisés pour
                                                  supprimer plusieurs fichiers. Si un répertoire est spécifié,
                                                  tous les fichiers qu'il contient seront supprimés.
                                  
                                    /P            Demande une confirmation avant de supprimer un fichier.
                                    /F  Force la suppression de fichiers en lecture seule.
                                    /S            Supprime les fichiers dans tous les sous-répertoires.
                                    /Q            Pas de confirmation avant suppression avec car. génériques.
                                    /A            Suppression en fonction des attributs
                                    attributs     R  Fichiers en lecture seule   S  Fichiers système
                                                  H  Fichiers cachés             A  Fichiers prêts pour archive
                                                  -  Préfixe de négation
                                  
                                  Si les extensions de commandes sont activées, DEL et ERASE sont modifiées
                                  comme suit :
                                  La logique d'affichage du commutateur /S est inversée. Elle
                                  n'affiche que les fichiers supprimés, et pas ceux qui n'ont pas été trouvés.
                                  0
                                  1. Merci beaucoup pour ta réponse mais le petit problème c'est que lorsque je clic droit sur mon batch et que je vais dans propriétés, la case "Executer en tant qu'Administrator" est bien present mais griser; impossible de la cocher :S. Comment faire??
                                    0
                                    1. Salut.

                                      Effectivement, les fichiers situés dans le répertoire "Program files" sont protégés. Pour que ton batch fonctionne correctement, pour toutes modifications que ce soit, tu doit faire : Clique droit sur le fichier>Exécuter en mode administrateur. Une fois fait, tout devrais se passer comme supposé. Il est aussi possible que ce ne soit pas dû au fait que les fichiers sont protégés mais aussi au fait qu'ils soient en cour d'utilisation. Juste au cas ou le message d'erreur s'affiche pas et que cmd.exe se ferme après, il est possible que tu ne le voit juste pas. Petit conseil: rajoute l'argument "pause" sans les "" à la fin de ton batch. Comme ça, lorsque l'exécution du programme auras été faite, il devrait se mettre sur Pause et te demander si tu veut continuer. Ça te donneras l'occasion de voir le message qui s'affiche, dans la mesure ou il y en a un.
                                      0
                                      1. Merci de ta réponse rapide j'y avais pensé mais je ne pensais pas que sa serait d'une grande utilité. Mais bon voila le code:

                                        @echo off
                                        del C:\Program Files\audiograbber\*.dll
                                        cls
                                        0
                                        • 1
                                        • 2