script
Salut, j'ai créé un script qui fait un nettoyage des fichiers temporaires. Vu que je suis un débutant, je suis certain que j'ai beaucoup d'erreur dans mon script. Je vous demande donc de me donner des suggestions et des améliorations qui peuvent rendre mon script fonctionnel.

Veuillez noter que je ne demande pas que vous fassiez mon script, je demande simplement des idées, améliorations et conseils. Merci d'avance.

Mon script doit correspondre à ceci:

La syntaxe d'utilisation du script doit correspondre à celle-ci :

nettoyage.cmd [ (/H | /S sec) ] [/C destination]

Les options suivantes existent :

/H affiche l'écran d'aide puis termine. Doit être la première option. Toute autre option est ignorée et aucune action n'est effectuée.
/S sec ajoute un délai de sec secondes avant l'arrêt de l'ordinateur. Doit être la première option. Si l'option /S n'est pas spécifiée, l'ordinateur ne doit pas être éteint à la fin du traitement.
/C destination spécifie un répertoire où envoyer les fichiers plutôt que de les effacer. Peut être la première ou seconde option. Si le répertoire destination n'existe pas, il est créé automatiquement.

Lorsqu'il est appelé sans paramètres ou avec seulement l'option /S, le script doit effacer :


l'ensemble des fichiers contenus dans le répertoire temporaire de Windows (donné par la variable d'environnement %TEMP%)
tous les fichiers dont l'extension est «.tmp» ou «.bak» qui se trouvent dans le répertoire personnel de l'utilisateur (donné par les variables d'environnement %HOMEDRIVE% et %HOMEPATH%).
un sous-répertoire nommé «temp» au complet avec son contenu, s'il existe dans le répertoire personnel de l'utilisateur.

Lorsqu'il est appelé avec l'option /C, le script doit :

créer, s'il n'existe pas déjà le répertoire cible.
déplacer dans le répertoire cible :
l'ensemble des fichiers contenus dans le répertoire temporaire de Windows
tous les fichiers dont l'extension est «.tmp» ou «.bak» dans le répertoire personnel de l'utilisateur.
un sous-répertoire nommé «temp» au complet avec son contenu, s'il existe dans le répertoire personnel de l'utilisateur.

Si l'option /S est utilisée, le script doit arrêter l'ordinateur après un délai de sec secondes.





Voici le travail que j'ai effectué jusqu'à présent:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
@echo off

::cas1
if "%1" == "" ( goto cas1 )
::cas2
if "%1" == "/H" ( goto cas2 )
::cas4
if "%1" == "/C" ( goto cas4 )
::cas(3)(5)
if "%1" == "/S" (
if "%3" == "" ( goto cas3 )
if "%3" == "/C" ( goto cas5 ) )

:cas1
::Supprime tous les fihiers temporaires et etteint le système.
del/Q %TEMP%
Shutdown	
exit /b

:cas2
::Affichage de l'aide.
echo Salut, ce programme fait un nettoyage des fichiers temporaires.
echo Lorsque vous tapez /S et vous ajoutez le nombre de secondes
echo le programme effacera tous les fichiers temporaires et etteignera le système.
echo Si vous tapez /C et ensuite vous donnez un répertoire, le programme déplacera tous 
echo les fichiers vers ce répertoire et etteignera le système.
echo La commande /H affiche l'aide.
exit /b

:cas3
::Supprime tous les fichiers temporaires, ajoute un délai de secondes et etteint le système. 
del/Q %TEMP%
cd %HOMEDRIVE%%HOMEPATH%
if exist *.tmp (
del/Q *.tmp)
if exist *.bak (
del/Q *.bak)
if exist temp (
del/Q temp )
Shutdown
exit /b

:cas4
::Déplace les fichiers temporaires.
move/Y %TEMP%
cd %HOMEDRIVE%%HOMEPATH%
if exist *.tmp (
move/Y *tmp.)
if exist *.bak (
move/Y *.bak)
if exist temp (
move/Y temp )
exit /b

:cas5
::Déplace les fichiers temporaire et etteint le système.
move/Y %TEMP%
cd %HOMEDRIVE%%HOMEPATH%
if exist *.tmp (
move/Y *tmp.)
if exist *.bak (
move/Y *.bak)
if exist temp (
move/Y temp )
Shutdown
exit /b