Spprimer une "liste" de repertoires ? - Shell/Batch - Programmation
Marsh Posté le 27-05-2006 à 13:09:35
ReplyMarsh 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.
Marsh Posté le 28-05-2006 à 15:05:32
wackevat a écrit :
|
J'ai toujours le m problème j'ai remplacé la commande
Code :
|
par :
Code :
|
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.
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 ?
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.
Marsh Posté le 30-05-2006 à 07:01:47
Et malgré ça tu ne comprends pas ce que présente %%i ?
for /?
à l'invite de commandes pour plus d'infos.
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
Marsh Posté le 30-05-2006 à 14:35:14
C'est pas grave. On continuera ici quand tu reviendras en bonne humeur.
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
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
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.
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é |
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
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 !
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 : |
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
Marsh Posté le 01-06-2006 à 13:17:24
for /f %%i in ('dir /a /b %SystemRoot%\$NtUninstallKB*') do (RD /S %%i) ça non plus
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 ( à 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...
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
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...
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