Forum TT-Hardware: Tutorial : Créer des scripts pour windows

Transcription

Forum TT-Hardware: Tutorial : Créer des scripts pour windows
Tuto by HellDuck - 2k2
PDF by KdZ' Korpo - 2k2
Auteur
Sujet: Tutorial : Créer des scripts pour windows
HellDuck
Modérateur Hardware
FAQ-Man
Membre # 5002
Message du 21-11-2002 19:20
Tutorial : Créer des scripts pour windows
Le but de ce tutorial est d'apprendre a créer un script pour windows. Ce script
peut par exemple servir a faire des sauvegarde de vos documents ou nétoyer les
dossiers temporaires de windows, on peut aussi planifier la défragmentation des
disques dur.
Ce tutorial va etre découpé en plusieurs étapes :
■
■
■
■
Score du membre:
■
Chapitre
Chapitre
Chapitre
Chapitre
Chapitre
I : Création du fichier et langage utilisé
II : Les principales commandes
III : Exemples de scripts et explications
IV : exécution des scripts
V : Remarques supplémentaires et conclusion
Chapitre I : Création du fichier et langage utilisé
Il existe plusieurs langages permettant de créer des scripts pour windows. Ils
ont chacun leur qualités et leurs defauts. Ce qui est recherché ici c'est la
simplicité donc nous allons nous tourner vers un langage basique, mais il est
tout a fait possible d'utiliser des langage tel que VBS pour faire les même choses
voir beaucoup plus.
Nous allons donc utiliser les commandes DOS et ainsi créer des fichiers dont
l'extension sera .bat
Ces fichiers pourront etre exécuté très simplement sous windows et ne sont pas
compliquer a comprendre et créer.
Je rassure les pros du DOS ce que nous allons voir n'est pas très évolué mais
permet deja de rendre beaucoup de service.
Nous allons maintenant voir les commandes les plus utiles associé a chaque type
de scripts : sauvegarde, netoyage, defragmentation, scan ...
Les fichiers .bat sont de type texte, nous allons donc utiliser le bloc note ou un
éditeur de texte standard.
Les commandes s'enchainent simplement en les mettant les unes a la suite des
autres sur chaque ligne du fichier.
Chapitre II : Les principales commandes
Remarque : Suivant la version de windows les options des commandes peuvent
changer de syntaxe. Pour afficher l'aide sur une commande il suffit d'ouvrir une
fenetre DOS et de taper le nom de la commande suivit de "/?".
Prenons comme première utilisation le script de Sauvegarde.
Les commandes les plus utiles sont :
■
■
■
■
■
copy : copier/coller
move : couper/coller
del / rmdir : supprimer (fichier / répertoire)
mkdir : création de dossier
rename : renommage
-> La commande copy permet de copier un fichier ou un dossier.
Sans plus attendre voyons la syntaxe :
copy fichier_source fichier_destination
Pour copier le fichier se trouvant dans le dossier c:\test\fichier1.txt vers le
dossier d:\save\
il suffit de taper la commande :
copy c:\test\fichier1.txt d:\save\
Si l'on souhaite au passage renommer le fichier on peut spécifier son nouveau
nom :
copy c:\test\fichier1.txt d:\save\fichier2.txt
On peut aussi copier tous les fichiers du dossier en mettant *.* a la place du
nom :
copy c:\test\* d:\save\
Attention : la commande copy écrase les fichiers ayant le même nom.
Il est aussi possible par exemple de ne copier que les fichiers ayant une partie
de leur nom en commun en replacant le reste du nom par * :
copy c:\test\*save* d:\save\
Cette commande copie uniquement les fichier ayant "save" dans leur nom.
-> La commande move permet de deplacer un fichier ou dossier
La syntaxe est la suivante :
move fichier_source fichier_destination
Pour deplacer le fichier c:\fichier.txt vers le dossier c:\save\fichier.txt il faut
donc faire :
move c:\fichier.txt c:\save\
Remarque : aucune confirmation n'est demandé.
-> La commande del permet de supprimer un fichier.
La syntaxe est la suivante :
del nom_fichier
Pour supprimer le fichier c:\test\fichier1.txt il faut donc faire :
del c:\test\fichier1.txt
Attention : Aucune demande de confirmation n'est faite ! Pour qu'il y en ait une
il faut ajouter /p a la fin de la commande. De même pour que les fichiers en
lecture seule soit supprimer il faut ajouter /f. l'option /q assure qu'il n'y aura pas
de message de confirmation.
Comme vu plus haut pour supprimer plusieurs fichiers il suffit de mettre * dans
le nom :
del c:\test\*
Cette commande supprime tous les fichiers du dossier c:\test
Remarque : En associant la comande copy et del on peut ainsi faire l'équivalent
d'un couper/coller.
-> La commande rmdir ou rd permet de supprimer un dossier.
La syntaxe est la suivante :
mrdir nom_dossier
pour supprimer le dossier c:\test\ il faut donc faire :
rmdir c:\test
Attention : si le dossier n'est pas vide celui ci ne sera pas supprimer.
Pour supprimer le dossier et tout ce qu'il contient il faut ajouter /s a la fin de la
commande :
rmdir c:\test /s
Attention : un message de confirmation est demandé lorsque l'on supprime le
contenu du dossier. Pour qu'il n'y ait pas cette confirmation il est possible de
mettre l'option /q a la fin de la ligne.
-> La commande mkdir permet de créer un dossier.
La syntaxe est la suivante :
mkdir nom_dossier
Pour créer le dossier d:\save\ il faut donc faire :
mkdir d:\save
Il est possible de crée plusieurs dossiers imbriqué d'un seul coup par exemple :
mkdir d:\save\test1\test2
Cette commande va créer dans le dossier save du disque D un dossier test1 et
dans celui ci un dossier test2
-> La commande rename ou ren permet de renommer un fichier ou un dossier.
La syntaxe est la suivante :
ren nom_depart nom_arrivé
Pour renommer le dossier d:\save en d:\sauvegarde il faut donc faire :
ren d:\save d:\sauvegarde
Idem pour renommer un fichier :
ren c:\fichier1.txt c:\fichier2.txt
Remarque : il est conseiller de toujours mettre le chemin complet vers les
fichiers et dossiers cibles de ces commandes.
Avec toutes ces commandes il est possible de réaliser des sauvegardes ou de
faire des scripts de netoyage.
Dans le cas des sauvegardes il n'est pas possible avec de simple commandes
DOS de lancer par exemple une gravure. Il est possible de faire des sauvegardes
soit sur un lecteur type zip ou disquette ou sur un autre disque dur ou autre
partition.
L'avantage du script est de pouvoir etre automatisé et surtout permet de
regrouper plusieurs fichier au même endroit pour ensuite un archivage plus
facile.
Dans le cas d'un script de netoyage il faut utiliser les commandes de suppression
et surtout connaitre les chemin complet des dossiers contenant des fichiers
temporaires.
Voyons maintenant les commandes permettant de controler le defragmenteur
de disque et le scandisk de windows :
-> La commande chkdsk permet de lancer le scandisk de windows.
La syntaxe est la suivante :
chkdsk nom_lecteur
Il est possible de lancer le scandisk sur un lecteur complet (exemple c
mais
aussi sur un dossier particulier (exemple c:\windows)
La commande chkdsk toute seule ne fait qu'un scan en "lecture seule" pour que
les erreurs soient corrigées au fur et a mesure il faut ajouter /f a la fin de la
commande.
chkdsk c: /f
Cette commande permet de faire un scandisk du disque c: et de réparer les
erreurs.
-> La commande defrag permet de lancer le defragmenteur de disque de
windows.
La syntaxe est la suivante :
defrag nom_lecteur
Pour defragmenter le disque c: il faut donc faire :
defrag c:
Pour faire juste une analyse il faut ajouter le parametre -a a la fin de la
commande
Pour forcer la defragmentation il faut ajouter le parametre -f a la fin de la
commande
En ajoutant -v le defragmenteur affichera les détails.
Chapitre III : Exemples de scripts et explications
Voici le contenu d'un fichier de script permettant de faire la sauvegarde de
plusieurs fichiers provenant de divers dossiers.
Les explications sont juste en dessous du scripts.
code:
fichier : save.bat
echo Debut de la sauvegarde
echo création du dossier save2
mkdir d:\save2
echo OK
echo creation du dossier documents
mkdir d:\save2\documents
echo OK
echo copie des documents
copy c:\documents\* d:\save2\documents\
echo OK
echo creation du dossier imagestth
mkdir d:\save2\imagestth
echo OK
echo copie des fichiers images de TTH
copy c:\images\*tth*.* d:\save2\imagestth
echo OK
echo suppression des images
del c:\images\*.*
echo OK
echo suppression ancien dossier save
rmdir d:\save /s /q
echo OK
echo renommage du dossier save2
ren d:\save2 d:\save
echo OK
echo Fin de la sauvegarde
exit
On constate donc que les commandes se succedent simplement en les mettant
sur une ligne les unes a la suite des autres.
La commande echo permet d'afficher du texte lors de l'exécution du script.
Comme on peut le voir il y a beaucoup de ligne echo ce qui permet d'avoir un
suivit de la progression du script et de savoir ou ca en est si il y a un blocage.
On peut remarquer aussi que la sauvegarde se fait d'abord dans un dossier
temporaire (save2) puis a la fin on détruit l'ancienne sauvegarde et on renomme
le fichier temporaire. Cette technique permet de ne rien perdre en cas de
blocage du script.
La commande exit est facultative : elle permet de fermer la fenetre DOS à la fin
du traitement chose qui se fait si tout se passe bien tout seul.
Chapitre IV : exécution des scripts
Pour exécuter les scripts il y a plusieurs technique possibles :
■
■
■
Soit il faut passer par le planificateur de tache windows : pour le cas ou
les actions doivent etre faites a intervalle régulier. Exemple : tous les
dimanches à 23h00.
Soit il est possible de mettre les fichiers .bat dans le dossier "demarrage"
du menu démarrer et dans ce cas les scripts se lanceront a l'ouverture de
windows.
Soit il faut exécuter les fichiers .bat manuellement en double cliquant
dessus au moment ou l'on souhaite faire les actions présente dans le
script.
On peut bien évidement mixer toutes ces techniques et créer autant de scripts
que l'on veut.
Il est aussi possible de créer un script qui lance les autres scripts les uns a la
suites des autres (cela permet de décomposé les taches en partie élémentaires
pour plus de facilité a les modifier).
Pour cela il suffit d'indiquer le chemin vers le script comme une commande. Pour
lancer le script save.bat present sur c:\ depuis le fichier script.bat il faut juste
indiquer dans ce dernier :
c:\save.bat
Remarque : il peut etre interessant de planifier la defragmentation des disques
dur pendant par exemple l'heure des repas : une defragmentation regulière ne
prends pas beaucoup de temps.
Chapitre V : Remarques supplémentaires et conclusion
Pour l'instant il n'y a pas vraiment de remarques supplémentaires a faire.
J'ajouterais vos commentaires et apport personnel ici. Je suis donc ouvert a
toutes informations complémentaires que j'aurais pu oublier.
Je vous invite cependant a consulter l'aide de windows au chapitre MS-DOS /
commandes ou de cherches plus d'infos sur les commandes sur internet si vous
souhaitez avoir une description plus détaillé, je me suis seulement interéssé ici
qu'au commandes les plus utiles.
Merci d'avoir lu jusqu'au bout et bonne "programmation"
J'accepte aussi vos commentaires par PM
---------------------------------Asus P4B533|PIV [email protected] GHz|768 Mo PC2700|Leadtek GF4 Ti4200|Iiyama 19"|DD Seagate
40Go+80Go|Plextor 40/12/40A|DVD 8X
N'oubliez pas de consulter la FAQ qui contient bon nombre de tutoriaux ou guides de
dépannage/conseils.
Vous souhaitez un tutorial sur le fonctionnement d'un logiciel ? Contacter les FAQ-Men par PM ou
postez une demande dans la FAQ
Messages : 2468 (12.21 par jour) | De : region parisienne | Enregistré : Mai 2002 (202
jours) | IP: mémorisée | Un problème avec ce message?
MichelB
Master
FAQ-Man
Membre # 4764
Message du 21-11-2002 20:40
Pas mal...
Je trouve seulement que tu aurais du intégrer la commande xcopy, en plus ou
même à la place de copy, absolument nécessaire, indispensable, pour les scripts
bat sous Windows, par exemple pour faire des sauvegardes incrémentielles,
automatiques, de dossiers tels que "Mes documents".
Je rappelle les paramètres de cette commande :
Score du membre:
Copie des fichiers et des arborescences de répertoires.
XCOPY source [destination] [/A | /M] [/D[
[/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:fich1[+fich2][+fich3]...]
ate]] [/P] [/S [/E]] [/V] [/W]
source Spécifie le ou les fichiers à copier.
destination Spécifie l'emplacement et/ou le nom de nouveaux fichiers.
/A Copie uniquement les fichiers ayant l'attribut archive, ne
modifie pas l'attribut.
/M Copie uniquement les fichiers ayant l'attribut archive,
désactive l'attribut archive.
/D:m-j-a Copie les fichiers modifiés à partir de la date spécifiée.
(attention, c'est le format de date donné par country dans
config.sys, dont, sous Windows 2000 ou XP, c'est le format
américain (m-j-a))
Si aucune date n'est donnée, copie uniquement les fichiers dont
l'heure source est plus récente que l'heure de destination.
/EXCLUDE:fich1[+fich2][+fich3]...
Spécifie une liste de fichiers contenant des chaînes. Quand une
de ces chaînes se retrouve dans le chemin d'accès absolu au
fichier à copier, ce fichier est exclu de la copie. Par exemple,
spécifier une chaîne telle que \obj\ ou .obj exclura tous les
fichiers du répertoire obj ou tous les fichiers dont l'extension
est .obj, respectivement.
/P Avertissement avant la création de chaque fichier de destination.
/S Copie les répertoires et sous-répertoires sauf ceux qui sont
vides.
/E Copie les répertoires et sous-répertoires, y compris vides.
Identique à /S /E. Peut être utilisé pour modifier /T.
/V Vérifie chaque nouveau fichier.
/W Vous demande d'appuyer sur une touche avant la copie.
/C Continuer la copie même si des erreurs se produisent.
/I Si la destination n'existe pas et que plus d'un fichier est
copié, assume que la destination est un répertoire.
/Q N'affiche pas les noms de fichiers lors de la copie.
/F Affiche les noms source et de destination complets à la copie.
/L Affiche les fichiers qui seraient copiés.
/H Copie également les fichiers cachés et les fichiers système.
/R Remplace les fichiers en lecture seule.
/T Crée la structure de répertoires mais ne copie pas les fichiers.
N'inclut pas les répertoires ou sous-répertoires vides. /T /E
inclut les répertoires et sous-répertoires vides.
/U Copie seulement les fichiers qui existent déjà en destination.
/K Copie les attributs. Xcopy normal rétablira les attributs de
lecture seule.
/N Copie en utilisant les noms courts générés.
/O Copie les informations d'appartenance et d'ACL des fichiers.
/X Copie les paramètres d'audit de fichiers (implique /O).
/Y Supprime la demande de confirmation de remplacement de
fichiers de destination existants.
/-Y Provoque la demande de confirmation de remplacement d'un fichier
de destination existant.
/Z Copie les fichiers du réseau en mode redémarrable.
L'option /Y peut être présente dans la variable d'environnement COPYCMD.
Elle peut être ignorée en utilisant /-Y dans la ligne de commande.
[ 21-11-2002 20:44: Message édité par : MichelB ]
---------------------------------Un site qui recense et classe tous les cours et tutoriaux du web pour aider tous les TT-Hardeurs
http://coolmicro2.free.fr
FAQ/Tutoriaux
Aller