j'ai un doute

Le
moi
Bonjour,


est-ce que la commande suivante est correcte d'un point de vue
"syntaxique"

set CH=C:WindowTemp
If Exist %CH% (
cd %CH%
for /d %%n in (*) do rd /s /q "%%n"
del /q "C:WindowsTemp*"
)

Merci d'avance,

HB
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT [MVP]
Le #706507
"moi" news:%
| Bonjour,

Bonjour,

| est-ce que la commande suivante est correcte d'un point de vue
| "syntaxique"
|
| set CH=C:WindowTemp
| If Exist %CH% (
| cd %CH%
| for /d %%n in (*) do rd /s /q "%%n"
| del /q "C:WindowsTemp*"
| )

Oui, la séquence est correcte. Bravo !
Toutefois de légères modifications (c'est plus fort que *moi* !)

@echo off
set ch=d:testtemp
if exist "%ch%" (
for /d %%n in ("%ch%*") do rd /s /q "%%n"
del /q "%ch%*"
)

Adaptations :

1- le script s'appuie intégralement sur la variable d'environnement "ch"
2- le dossier courant n'est pas modifié (suppression du "cd")
3- le script supporte maintenant un dossier racine avec nom long
4- les actions (rd et del) pourraient être consignées dans un fichier
log

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Gilles LAURENT [MVP]
Le #706333
"moi" news:%
| Bonjour,

Bonjour,

| est-ce que la commande suivante est correcte d'un point de vue
| "syntaxique"
|
| set CH=C:WindowTemp
| If Exist %CH% (
| cd %CH%
| for /d %%n in (*) do rd /s /q "%%n"
| del /q "C:WindowsTemp*"
| )

Une autre approche :

@echo off
set ch=d:testtemp
if exist "%ch%" (
rd /s /q %ch%
md "%ch%"
)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
moi
Le #706332
Notre ami Gilles LAURENT [MVP] tapota :


Oui, la séquence est correcte. Bravo !


vous êtes trop bon

Toutefois de légères modifications (c'est plus fort que *moi* !)


J'allais vous en prier


@echo off
set ch=d:testtemp
if exist "%ch%" (
for /d %%n in ("%ch%*") do rd /s /q "%%n"
del /q "%ch%*"
)

Adaptations :

1- le script s'appuie intégralement sur la variable d'environnement
"ch" 2- le dossier courant n'est pas modifié (suppression du "cd")


Ah oui, bonne remarque

3- le script supporte maintenant un dossier racine avec nom long

4- les actions (rd et del) pourraient être consignées dans un
fichier
log


En fait, c'est pour l'adapter avec des lecteurs réseau
afin de nettoyer automatiquement des parties
des "home" des utilisateurs (... local settingstemp ... )
( répertoire perso sur le serveur )
donc : Les noms longs -->> c'est utile
La journalisation -->> c'est inutile dans ce cas ;o)

une fois dans les *.bat de profil cela devrait aller...

Comme se plait à le dire JCB, "la connaissance .... "

Merci,

HB

moi
Le #706331
Notre ami Gilles LAURENT [MVP] tapota :

(...)>>

Une autre approche :

@echo off
set ch=d:testtemp
if exist "%ch%" (
rd /s /q %ch%
md "%ch%"
)


J'y avais pensé
( ben oui puisque c'est plus simple - pas de boucle for)
mais je veux limiter
les pb liés aux autorisations ntfs
Si le répertoire possède des ACL spéciales, ça va sauter ...

Cette ossature va servir à plusieurs chose
-> des scripts exécutés avec les droits de l'utilisateurs ( donc pas
de pb)
-> des scripts exécutés avec des droits systems...
-> ça peut concerner des répertoires locaux des stations
-> ça peut concerner des partages ..., des parties de lecteurs
réseaux, ...
et je veux que ça marche tout le temps d'où l'approche
" ne pas toucher au conteneur"

merci encore,

HB

Publicité
Poster une réponse
Anonyme