Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

j'ai un doute

4 réponses
Avatar
moi
Bonjour,


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

set CH=C:\Window\Temp
If Exist %CH% (
cd %CH%
for /d %%n in (*) do rd /s /q "%%n"
del /q "C:\Windows\Temp\*"
)

Merci d'avance,

HB

4 réponses

Avatar
Gilles LAURENT [MVP]
"moi" a écrit dans le message de
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
Avatar
Gilles LAURENT [MVP]
"moi" a écrit dans le message de
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
Avatar
moi
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

Avatar
moi
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