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