Spprimer une "liste" de repertoires ?

Spprimer une "liste" de repertoires ? - Shell/Batch - Programmation

Marsh Posté le 27-05-2006 à 10:28:31    

Sltà tous ?
 
J'aimerais ajouter à un ptit fichier batch que je me suis fait il'y a qq temps, une commande qui supprimerait tous les repertoire de type "$NtUninstallKB891122$". J'arrive à supprimer l'attribut "caché" de facon générique ($NtUninstallKB*) mais il m'est impossible de supprimer en une oprération toute une "liste" de répertoires. J'ai essayé aussi un truc du genre avec RD => $NtUni~1 mais ça ne fonctionne pas non plus.
 
J'ai cherché longtemps sur google mais là je sèche et j'aimerais bien arriver à mes fins. HELPPP ! ;)
 
merci d'avance


Message édité par arnomedia le 27-05-2006 à 10:30:15
Reply

Marsh Posté le 27-05-2006 à 10:28:31   

Reply

Marsh Posté le 27-05-2006 à 13:09:35    

Code :
  1. for /f %%i in ('dir /a:d /b %SystemRoot%\$NtUninstallKB*') do (echo %%i)

Reply

Marsh Posté le 28-05-2006 à 13:55:01    

merci c sympa ! par contre je n'y comprends pas grand chose. ça devient compliqué là... je ne reconnais aucune commande horsmis %systemroot% et DIR. Je vais qd m essayer de comprendre.

Reply

Marsh Posté le 28-05-2006 à 15:05:32    

wackevat a écrit :

Code :
  1. for /f %%i in ('dir /a:d /b %SystemRoot%\$NtUninstallKB*') do (echo %%i)



 
J'ai toujours le m problème :( j'ai remplacé la commande

Code :
  1. do (echo %%i)

par :
 

Code :
  1. do (RD /S %SystemRoot%\\$NtUninstallKB* %%i)

Je n'ai pas mis volontairement la commande /Q pour voir le détail et effectivement cmd.exe me propose de supprimer tous les répertoires $NtUninstallKBxxxxxx$ les un apres les autres mais j'ai la même erreur qu'auparavant, a savoir "Syntaxe du nom de fichier, de répertoire ou de volume incorrecte."
 
Sinon j'ai consulté FOR /? et j'aimerais bien que quelqu'un puisse m'éclairer sur l'option %i car je ne comprends pas bien à la ligne de commande.
 
Donc pour le moment je sèche encore... merci d'avance pour votre aide.


Message édité par arnomedia le 28-05-2006 à 15:06:58
Reply

Marsh Posté le 28-05-2006 à 18:58:01    

Attends, quand tu laisses  
echo %%i
ça te donne quoi ?
 
Ca explique le %%i, et par conséquent l'erreur que tu as eue avec rd, non ? ;)

Reply

Marsh Posté le 30-05-2006 à 06:16:32    

ah ben si je laisse echo %%i ça marche nikel ;) cmd m'affiche tous les dossiers $NtUninstallKBxxxxxx$ les uns à la suite des autres. mais je ne comprend rien à i
 
merci d'etre revenu.

Reply

Marsh Posté le 30-05-2006 à 07:01:47    

Et malgré ça tu ne comprends pas ce que présente %%i ? :o
 
for /?
à l'invite de commandes pour plus d'infos.

Reply

Marsh Posté le 30-05-2006 à 14:09:52    

bon je trouve que je me prends suffisement la tete régulièrement pour arriver à mes fins ds le vaste monde de l'informatique sans avoir à jouer aux devinettes mais puisque tu me le demandes j'ai envie de dire que puisque i est suivi de in au debut de ligne de commande, que i est un peu comme un "raccourci".
Traduction grossière : établir (set) que i represente X chemin et (echo) afficher i donc se qu'il represente. C ça, docteur ?
 
En attendant je ne vois pas pourkoi, ds ce cas là, ça ne fonctionne pas avec RD
 
Bon désolé j'suis un peu de sale humeur ;)


Message édité par arnomedia le 30-05-2006 à 14:13:47
Reply

Marsh Posté le 30-05-2006 à 14:35:14    

C'est pas grave. On continuera ici quand tu reviendras en bonne humeur.

Reply

Marsh Posté le 30-05-2006 à 16:56:52    

C la seule méthode pour utiliser un répertoire avec une terminaison générique ? Je veux dire "toto*" pour "totolemalin" par exemple.
 
ce qui est bien, c que je ne suis jamais trop longtemps de mauvaise humeur ;) je ne suis pas patient désolé mais obstiné ça oui. ça compense :)

Reply

Marsh Posté le 30-05-2006 à 16:56:52   

Reply

Marsh Posté le 30-05-2006 à 17:32:00    

rmdir n'accepte pas les wildcards, d'où l'utilisation de la variable i pour récupérer les vrais noms :)

Reply

Marsh Posté le 31-05-2006 à 21:52:08    

wildcards... c koi ça ? les noms génériques ? Le plus simple pour toi comme pour moi serait que tu me donne la ligne de commande approprié si tu le veux bien puisqu'il me semble que tu as bien compris mon "projet". Si tu en as envie je serais ravis que tu m'en explique le fonctionement. J'ai appelé ce Batch "Nettoyage System (C)" il me vide le dossier temp de l'utilisateur encours, le dossier temp de windows, le dossier document recent, les fichiers LOG ds windows et donc si possible j'aimerais qu'il puisse supprimer aussi les dossiers compressés de sauvegardes des mises à jours de windows. Voilà.
 
a+ j'espère.

Reply

Marsh Posté le 01-06-2006 à 08:15:43    

arnomedia a écrit :

wildcards... c koi ça ? les noms génériques ?


http://en.wikipedia.org/wiki/Wildcard_character
 

arnomedia a écrit :

Le plus simple pour toi comme pour moi serait que tu me donne la ligne de commande approprié


:o

Reply

Marsh Posté le 01-06-2006 à 11:39:30    

putain si l'homme avait tjrs procédé de la m façon, on en serait encore à l'age de pierre. Enfin merci pour le peu d'élément que tu m'a fourni.
 
Tu dois excéler dans toutes les sciences du monde pour avoir cette attitude débile typique de l'image que se font les gens de l'abruti d'informatitien qui prends bien garde de garder rien que pour lui le peu de chose qu'il connait.
 
Quand tu irra voir ton medecin, demande lui se que tu as, il te réponderra peut-etre...
- vous toussez
- oui, et alors ?
- allez voir dans l'Encyclopédie médicale
 
Alors garde ta science et tes "wildcards" c bien, tu as de l'avenir mon gars. Je vais m être sympa, commence par adapter ton vocabulaire à ton interlocuteur, c la base.
 
Salut

Reply

Marsh Posté le 01-06-2006 à 12:14:46    

Je suis chiante, je sais, et j'assume !!  
 
1- La définition de wildcard est très claire dans le Wiki  
2- J'ai donné la réponse à ton problème dès mon premier message, mais à part t'énerver tout le temps puis m'insulter, tu n'as pas ou très peu cherché à comprendre. Pourtant, même la commande pour avoir l'aide, je l'ai donnée et tout y était expliqué.
3- Si je voulais tout garder pour moi, je n'aurais pas intervenu ne serait-ce qu'une seule fois.
 
Enfin, bref !

Reply

Marsh Posté le 01-06-2006 à 12:48:25    

1- OK mais g pas dit que je n'avais pas compris
 
2- si tu m'avais donner la réponses à ton premier post, il n'y en aurait eu que 3. Le troisième étant pour te remercier. hors tu me parle de "echo" alors que je ne cherche pas à afficher lles dossiers mais à les supprimer. Donc qd on me demande X qestion je réponds à X et non à Y et voir le malheureux chercher X comme un con. Qd je viens sur le forum poser une question, c que je n'ai plus la patience de chercher par moi m, donc les devinettes, oui ça m'enerve. FOR /? je l'ai fait dès ton premier post et j'ai essayé des trucs pendant plus d'une heure. relis le 4eme post si tu veux verrifier. Bon et puis je ne suis pas nul en informatique, la prog je m'y met depuis peu c tout.
 
3- ?

Citation :

arnomedia a écrit :
 
Le plus simple pour toi comme pour moi serait que tu me donne la ligne de commande approprié
 
:o


Message édité par arnomedia le 01-06-2006 à 13:05:37
Reply

Marsh Posté le 01-06-2006 à 13:11:01    

for /f %%i in ('%SystemRoot%\$NtUninstallKB*') do (RD /S %%i) ça ne fonctionne pas non plus

Reply

Marsh Posté le 01-06-2006 à 13:17:24    

for /f %%i in ('dir /a:d /b %SystemRoot%\$NtUninstallKB*') do (RD /S %%i) ça non plus

Reply

Marsh Posté le 02-06-2006 à 18:26:29    

Pour décomposer un peu la démarche tu peux passer par un fichier texte transitoire
(uninstall.txt)  
 
dir /a:_dh /b "%SystemRoot%\$ntuninstallK*.*">"%temp%\uninstall.txt"
 
j'ai ajouté _ pour éviter les :d ( à supprimer dans le code final)
puis isoler chaque ligne à l'aide de "delims"
Et surtout, ne pas oublier de mettre des guillemets.
 
for /f "delims=" %%i IN ('type "%temp%\uninstall.txt"') do (
 rd /s "%SystemRoot%\%%i"
 pause
)
ATTENTION toutefois à ce que la boucle se termine correctement !!!  
car si la variable est vide c'est le répertoire Windows qui va être effacé  
(RD /S "c:\windows\")
faire des tests avec la commande echo...
 

Reply

Marsh Posté le 02-06-2006 à 20:42:44    

en fait pour une fois je crois que je vais laisser tomber :( je pensais pouvoir supprimer toute une liste de repertoires plus simplement. je n'ai pas assez de connaissance ds ce domaine pour arriver à mes fins. j'ai pratiquement l'impression de me retrouver devant un text en chinois.
je suis un peu deg.
 
merci qd m c sympa

Reply

Marsh Posté le 09-06-2006 à 04:32:43    

C koi "delims=" ?
Pourquoi utiliser la commande DIR ?
Pourquoi utiliser la variable %temp% ?
Je ne comprends pas pourquoi il faut créer un autre fichier texte.
 
Encore beaucoup d'intérogations en somme...


Message édité par arnomedia le 09-06-2006 à 04:35:08
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed