Bat - Suppression d'un dossier dans C:\Program files (x86) ?
micromega
Messages postés
141
Statut
Membre
-
micromega Messages postés 141 Statut Membre -
micromega Messages postés 141 Statut Membre -
Bonjour,
Je souhaite utiliser le code .bat suivant, pour rechercher un dossier et le supprimer dès qu'il le trouve :
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W ,X,Y,Y,Z) do (
if exist "%%i:\" set VrLetter=%%i& call :search %%i
)
goto FinBoucle
:search
for /r "%VrLetter%:\" %%j in ("TEST ICI") do if exist %%j rd /f /s /q %%~fsj
goto :eof
:FinBoucle
Cependant, avec C:\Program files (x86) et C:\Programmes, le dossier dans ces répertoires n'est pas effacé (même si j'exécute avec les droits administrateur). J'ai remarqué que les dossier étaient en "lecture seule", et même si je décoche la case cela ne change rien : le dossier redevient en lecture seule.
Y a t-il un moyen de contourner le problème?
Merci pour les aides.
Je souhaite utiliser le code .bat suivant, pour rechercher un dossier et le supprimer dès qu'il le trouve :
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W ,X,Y,Y,Z) do (
if exist "%%i:\" set VrLetter=%%i& call :search %%i
)
goto FinBoucle
:search
for /r "%VrLetter%:\" %%j in ("TEST ICI") do if exist %%j rd /f /s /q %%~fsj
goto :eof
:FinBoucle
Cependant, avec C:\Program files (x86) et C:\Programmes, le dossier dans ces répertoires n'est pas effacé (même si j'exécute avec les droits administrateur). J'ai remarqué que les dossier étaient en "lecture seule", et même si je décoche la case cela ne change rien : le dossier redevient en lecture seule.
Y a t-il un moyen de contourner le problème?
Merci pour les aides.
7 réponses
-
salut,
Juste une idée à tout hasard, à tu essayé d'ajouter l'option récurcif ? (/r de tête il me semble) -
Bonjour Nashima,
Merci pour ta réponse. Comment puis-je ajouter l'option récurcive ?
Merci -
de mémoire il suffit de rajouter l'option '/r' o(ou '/R') après ton rd
soit :for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W ,X,Y,Y,Z) do ( if exist "%%i:\" set VrLetter=%%i& call :search %%i ) goto FinBoucle :search for /r "%VrLetter%:\" %%j in ("TEST ICI") do if exist %%j rd /R /f /s /q %%~fsj goto :eof :FinBoucle
je n'en suis pas certains, mais normalement si ton répertoire n'est pas vide, un message de confirmation est demandé, et dans le cas d'une suppression silencieuse (comme toi), si non vide => ignoré. -
Bonjour,
J'ai essayé, mais cela ne fonctionne pas non plus.
Une autre idée?
Merci quand même. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
petit question, d'après ce que tu montre tu veux supprimer le répertoire "TEST ICI" présent à la racine des lecteurs existants, ce que tu montre est une partie de ton code ou tu as masqué certaines variables?
-
Bonjour,
Non je n'ai aucun message d'erreur. Le bat va jusqu'au bout de la recherche, il se termine par "goto FinBoucle".
J'ai regardé le dossier "TEST ICI" placé dans "program files (x86)" ou "Programmes" est en lecture seule et je ne peux pas le désactiver. J'ai trouvé ce problème uniquement pour ses deux dossiers (pour l'instant), sinon tous fonctionne.
"TEST ICI" n'est pas forcément dans la racine des lecteurs (C:\Program Files (x86)\Mon dossier\TEST ICI)
Tous les codes est là. Je souhaites seulement faire une recherche du dossier dans tous les dossiers de chaque lecteurs afin de le supprimer.
Sur quel système d'exploitation fonctionne-tu?
Merci de chercher ave moi !
A bientôt.