Fichier BATCH, bases de programmation 1 Notions de base
Transcription
Fichier BATCH, bases de programmation 1 Notions de base
Fichier BATCH, bases de programmation 1 Notions de base sur la programmation L’acquisition de bonnes habitudes de programmation par des programmeurs débutants n’est ni spontanée, ni naturelle. En particulier, l’étape de réflexion et d’analyse sur le problème traité, qui doit être préalable à toute tentative de programmation et d’exécution sur machine, est souvent omise ou déficiente. La méthode qui consiste à approcher l'objectif par des tentatives infructueuses multiples encodées au clavier entraîne généralement des pertes de temps considérables qui seraient inacceptables de la part d’un programmeur professionnel. 1.1 L’analyse. On peut affirmer que l’analyse d’un problème en vue de son traitement par l’informatique est l’étape la plus importante du travail de développement : de sa qualité dépend le succès ou l’échec de ce travail. Il existe de nombreuses méthodes d’analyse adaptées aux grands domaines d’applications. Cependant, dans la plus part des cas, il s’agira toujours de découper le problème global en sous-problèmes eux-mêmes décomposés en actions plus simples. Les grands points à énoncer au début d’une analyse sont les suivants : • • • • • 1.2 Définition des données d’entrée. Définition des données de sortie ( Les résultats ). Définition du traitement à effectuer. Traitement des erreurs. Facteurs humains. Place des fichiers BATCH ou SCRIPT Pourquoi, aujourd'hui, encore parler des vieux fichiers BATCH du système MSDOS ? BATCH signifie LOT, traitement d'une suite d'instruction par lot. Si vous avez une grande habilité à manipuler votre souris, il est probable que la réalisation d'un fichier BATCH pour une action à entreprendre une seule fois ne vous semble pas très intéressante. Répétez 100 fois par jour cette opération… De plus certains outils disponibles en ligne de commande n'ont pas leurs équivalents dans votre environnement graphique. XCOPY "C:\Mes documents\*.*" D:\BACKUP\*.* /D Vous permet de réaliser un BACKUP de votre répertoire mes documents. Grâce au commutateur /D, seul les fichiers plus récents que ceux de l'archive seront OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 1 Fichier BATCH, bases de programmation copiés: sur 100000 fichiers dont 99995 sont inchangés, cela vous fera gagner bien du temps. Sous Windows 2000 Server, de nombreuses commandes de manipulation et création réseau ne sont disponibles qu'en ligne de commande. D'autre part, comme administrateur réseau, si vous souhaitez que vos utilisateurs réalisent une opération lors de chaque fermeture de session, prévoyez un fichier script: lui n'oubliera jamais la tâche que vous lui avez confiée ! 2 Algorithmique :programmation structurée La définition d’un traitement doit identifier les actions à faire, les choix à opérer en fonction de l’état de conditions et leur enchaînement adéquat. Ceci s’appelle l’algorithmique. Dans un premier temps, la description des actions doit être faite sous forme indépendante de toute machine et même de tout langage afin d’être aussi général et neutre que possible. Un algorithme peut être plus ou moins complexe suivant la taille du problème, mais dans tous les cas, on peut le ramener à une association de structures élémentaires. 2.1 Structures élémentaires Séquence 2.1.1 Structure séquentielle Action 1 Action 2 Action 3 La séquence est une structure algorithmique correspondant à une suite d’actions à exécuter successivement, l’une après l’autre dans l’ordre de leur énoncé : Somme = Nombre1 Somme = Somme + Nombre2 Somme = Somme + Nombre3 Moyenne = Somme / 3 La séquence est la structure par défaut d'un fichier BATCH. 2.1.1.1 Rupture de la séquence La plus part des langages disposent de possibilités de modifier l'exécution d'une séquence d'instructions. Cependant plus le langage de programmation est structuré et évolué, moins il est nécessaire et souhaitable d'utiliser la rupture de séquence. (Voir 3.2.4) Batch, scripts GOTO GOTO SUITE_ET_FIN ECHO Ceci n'est jamais exécuté OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 2 Fichier BATCH, bases de programmation :SUITE_ET_FIN 2.1.2 Structure alternative L’exécution de certaines tâches peut dépendre de la réalisation d’une condition. Cette situation correspond à un Alternative Non Oui Condi tion de Action 1 dilemme ou une alternative : Action 2 Somme = Nombre1 + Nombre2 Somme = Somme + Nombre3 Si Somme>SeuilMaximum Alors effectuer action débordement Si Non, Moyenne = Somme / 3 La possibilité de ne rien accomplir pour une des deux actions est toujours envisageable. On peut appeler cela une alternative incomplète: c'est le seul mode disponible dans un fichier BATCH. (Voir 3.2.6) Cette structure est appelée par les mots-clés qu’elle contient Si .. condition .. Alors .. action1 .. Si non .. action2.. If .. condition .. Then .. action1 .. Else .. action2.. ‘ Alternative incomplète à action unique IF EXIST C:\TEST\NUL ECHO Le répertoire existe déjà ‘ Alternative incomplète à actions multiples IF EXIST C:\TEST\*.* GOTO SUITE_TRAITEMENT MD TEST XCOPY "C:\Mes documents\*.*" C:\TEST\*.* :SUITE_TRAITEMENT ‘ Alternative complète simulée à action unique IF "%1"=="YES" ECHO Vous êtes d'accord IF NOT "%1"=="YES" ECHO Vous n'êtes pas d'accord ‘ Alternative complète à actions multiples IF %OS%==Windows_NT GOTO ACTION_WIN_NT REM ACTION_WIN_98 . . . . . . GOTO FIN_TEST :ACTION_WIN_NT . . . . . . :FIN_TEST OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 3 Fichier BATCH, bases de programmation 2.1.3 Structure de répétition Répétition Les répétitions avec ou sans compteur sont représentées avec les mêmes éléments graphiques que l’alternative. Dans de nombreux cas, une action doit se reproduire un certain nombre de fois successivement sur des données différentes. Cette répétition est toujours sous l’emprise d’une condition de fin de test. Il existe différentes sortes de traductions de la structure de répétition suivant le langage de programmation et le niveau d’évolution de celui-ci. Mais généralement, à nouveau les mêmes mots-clés sont utilisés à travers la majorité d’entre eux. For ... Next, Do While ... 2.1.3.1 Répétition sur un lot de fichier Malheureusement, la commande FOR utilisable dans un fichier BATCh ne permet pas de réaliser une structure de répétition dont la fin est basée sur un compteur ou une condition mais simplement d'exécuter une action pour un certain nombre de fichiers.(Voir 3.2.9) FOR %%I IN (D*.doc) DO CALL NetBackup %%I Permet d'appeler la sauvegarde à travers le réseau (NetBackup.bat) de tous les fichiers dont le nom est du type D*.doc dans le répertoire courant. 2.2 Création de sous programmes Lors de la définition de l’analyse il était question de découper le problème global en sous-problèmes eux-mêmes décomposés en actions plus simples. Cette décomposition se retrouve dans le programme à réaliser sous la forme de procédures ou de fonctions. Mais les possibilités de réaliser un tel découpage dans un fichier BATCH ne sont envisageable qu'en créant différents fichiers. Deux types d'appels sont alors disponibles 2.2.1 Exécution d'un autre fichier BATCH Toutes les commandes exécutables du système MSDOS sont utilisables dans un fichier BATCH. Comme un BATCH est un exécutable, il peut en appeler un autre. ‘Fichier TEST1.BAT ACTION1 TEST2.BAT ACTION2 OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 4 Fichier BATCH, bases de programmation ‘Fichier TEST2.BAT ACTION3 Cependant la condition de fin d'exécution d'un fichier BATCH est la rencontre d'un caractère "EOF" fin de fichier. L'appel de TEST2.BAT sera réalisé mais l'exécution sera terminée après ACTION3, sans retour vers ACTION2. 2.2.2 Appel particulier d'un autre fichier BATCH Ce problème peut cependant être résolut de façon assez simple par l'utilisation du mot clé CALL réservé à cette situation. (Voir 3.2.5) ‘Fichier TEST1.BAT ACTION1 CALL TEST2.BAT ACTION2 ‘Fichier TEST2.BAT ACTION3 L'ordre d'exécution des action sera celui-ci: ACTION1, ACTION3, ACTION2 2.2.3 Windows 2000: autre usage de CALL Comme la commande CALL permet d'ignorer ou de décompter le nombre de EOF rencontrés, pourquoi ne pas l'utiliser pour accéder à une étiquette locale et ainsi enfin offrir la possibilité de réaliser une structure de sous programme! ‘Fichier TEST1.BAT CALL :PrintLine Echo LBSE2 6QTTI CALL :PrintLine Echo LOC239A CALL :PrintLine GOTO :EOF :PrintLine Echo **************** GOTO :EOF Le résultat de l'exécution sera celui-ci: **************** LBSE2 6QTTI **************** LOC239A **************** OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 5 Fichier BATCH, bases de programmation 3 Constitution d'un fichier BATCH ou SCRIPT La constitution des fichiers de commande reste inchangée depuis l'apparition du DOS. Un fichier ASCII (Texte non mis en forme) contenant une ou plusieurs commandes du système d'exploitation. Ce fichier doit porter une extension .bat ( Win95/98/Me/NT4/2000/XP ) ou .cmd (NT4/2000) Les commandes de ce type de fichier sont exécutées séquentiellement jusqu'à la lecture du caractère EOF (End Of File) fin de fichier. 3.1 Commandes générales Toutes les instructions que vous pouvez introduire en ligne de commande sont utilisables dans un fichier BATCH. La liste évolue cependant d'une génération de système d'exploitation à l'autre. Ainsi, lors de l'apparition du DOS7 de Windows 95, certaines instructions de DOS622 ont été abandonnées, d'autres complétées et de nouvelles sont apparues. Il en est de même pour les environnement W2000 et XP qui intègrent de nombreuses commandes réservées aux manipulation réseau de même qu’amélioration aux instructions de base du DOS. La liste dépend aussi de la console que vous utilisez : soit command.com, la version la plus proche du DOS, soit cmd.exe la version offrant toute la puissance de windows. Si vous utilisez l’extension .cmd, vous confirmez votre choix exclusif de la console cmd.exe. Chaque système Windows dispose dans l'aide d'une liste des commandes supportées. Voir les fichiers CommandW2k.pdf et Command95.pdf.. Vous pouvez aussi utiliser le fichier « AllHelp.bat » disponible sur le site http://www.robvanderwoude.com qui compile dans une page html l’aide en ligne de toutes les commandes disponibles dans « votre » version de Windows. 3.2 Commandes particulières Certaines commandes ont été ajoutées pour résoudre des besoins propres à l'exécution des fichiers BATCH. 3.2.1 Echo 3.2.1.1 ECHO ON, ECHO OFF Active ou désactive le mode ECHO, avec ou sans affichage à l'écran des commandes exécutées. 3.2.1.2 ECHO Voici un message utilisateur Affiche à l'écran les messages pour l'utilisateur. OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 6 Fichier BATCH, bases de programmation 3.2.2 Pause Interrompt le traitement du fichier et affiche le message "Appuyez sur une touche pour continuer…". Seule la séquence CTRL+C permet d'interrompre l'exécution du fichier BATCH. 3.2.3 Rem Permet d'insérer des commentaires à l'intérieur du fichier de commande. Ces commentaires sont invisibles à l'exécution. @ECHO OFF REM Demande d'interruption pour l'utilisateur ECHO Voulez-vous continuer? Si non, CTRL+C PAUSE 3.2.4 Goto Rupture de l'exécution séquentielle: assure un saut vers une destination étiquetée. L'étiquette est commencée par le caractère remarquable ":" GOTO FIN Rem instruction qui n'est jamais exécutée :FIN GOTO :EOF Rem instruction non exécutée :EOF =>End Of File 3.2.5 Call Permet d'appeler un fichier BATCH à partit d'un autre fichier BATCH tout en garantissant le retour au programme appelant et la poursuite de celui-ci lorsque l'exécution du programme appelé se termine. ‘ Fichier Batch1 Call Batch2 ATTENTION: UNIQUEMENT SOUS WINDOWS2000 La commande CALL accepte un mode de fonctionnement interne ( voir 2.2.3 ) L'appel d'un fichier batch par la commande CALL demande l'ouverture d'une nouvelle session CMD.EXE. Les variables définies dans la session du programme appelant seront inexistantes dans la session du programme appelé!!! 3.2.6 If Réalise un traitement conditionnel de l'instruction se trouvant sur la même ligne de commande. OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 7 Fichier BATCH, bases de programmation 3.2.6.1 IF ERRORLEVEL x ACTION_VRAI ACTION_VRAI est exécuté si le dernier programme exécuté à renvoyé un code de sortie supérieur ou égal à x. 3.2.6.2 IF %TMP%==C:\WINDOWS\TEMP ACTION_VRAI ACTION_VRAI est exécuté si la chaîne de caractère %TMP% ( La variable d'environnement WINDOWS TMP est-elle bien c:\Windows\temp ) est identique à C:\WINDOWS\TEMP. Attention, respecter les minuscules et majuscules! ATTENTION: UNIQUEMENT SOUS WINDOWS2000 et NT4 Le commutateur /I indique d'effectuer une comparaison insensible à la casse! Les opérateurs de test disponibles sont: == , EQU: égalité NEQ: non égal LSS: plus petit que LEQ: plus petit ou égal GTR: plus grand que GEQ: plus grand ou égal 3.2.6.3 IF EXIST NomDeFichier ACTION_VRAI ACTION_VRAI est exécuté si le fichier existe. Attention! Un nom de répertoire n'est pas un nom de fichier. Pour tester l'existence d'un répertoire, deux solutions sont possibles: IF EXIST C:\TEMP\*.* ACTION_VRAI Rem Ce répertoire ne peut être vide! IF EXIST C:\TEMP\NUL ACTION_VRAI Rem Il existe un fichier NUL même dans un répertoire vide 3.2.6.4 IF DEFINED %NomDeVariable% ACTION_VRAI ATTENTION: UNIQUEMENT SOUS WINDOWS2000 et NT4 Exécute ACTION_VRAI si la variable est préalablement définie. SET MyVar=1 IF DEFINED OS ECHO Windows NT en cours d'exécution OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 8 Fichier BATCH, bases de programmation IF DEFINED MyVar GOTO DéjàDéfini 3.2.6.5 IF NOT ... Spécifie, dans tous les cas, que l'action est exécutée si la condition est fausse. 3.2.7 If … ELSE … (NT4, Win2000 uniquement) Réalise un traitement conditionnel de l'instruction se trouvant sur la même ligne de commande. Structure alternative complète! IF EXIST T.BAT <DEL T.BAT> ELSE ECHO T.BAT non trouvé 3.2.8 Choice ( Non standard sous Windows 2000 : disponible dans le ressource kit uniquement ) Attend une réponse de l'utilisateur tout en affichant un éventuel message au sujet d'un choix à réaliser. Cette commande permet de réaliser un menu. Le résultat est à extraire de la variable ERRORLEVEL, 1-2-3-4... selon la touche enfoncée. Attention, IF ERRORLEVEL effectue un test "supérieur ou égal à" et non un test d'égalité. Il est donc impératif de tester la valeur de poids le plus fort en premier lieu. choice /C:ABC /T:A,5 Action A, B ou C, votre choix if errorlevel 3 goto ACTION_C if errorlevel 2 goto ACTION_B ECHO ACTION A GOTO FIN :ACTION_B ECHO ACTION B GOTO FIN :ACTION_C ECHO ACTION C :FIN 3.2.9 For Exécute une commande spécifiée sur chaque fichier d'un ensemble défini. FOR %%I IN (*.TXT) DO CALL PRINTER %%I Appel de PRINTER.BAT pour tous les fichiers du répertoire courant nommés *.txt. ATTENTION: UNIQUEMENT SOUS WINDOWS2000 Les options /D et /R vont étendre la définition de l'ensemble de fichier a travers les répertoires OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 9 Fichier BATCH, bases de programmation De plus la commande FOR peut être utilisée pour engendrer une suite numérique dans la variable %%I à appliquer sur l'action de base FOR /L %%I IN (1,1,14) DO NET USER 6Info%%I Crée la liste d'utilisateurs de 6Info1 à 6Info14 L'option /F permet quant à elle d'appliquer une action sur des contenu de fichiers de même que de réaliser l'analyse de ceux-ci 3.2.10 Shift Permet de décaler les paramètres en provenance de la ligne de commande. Rem Création d'un répertoire avec le 9ème nom passé par la ligne de commande. MD %9 SHIFT MD %9 le 10ème nom SHIFT MD %9 le 11ème nom 3.2.11 Start Démarre une nouvelle commande dans une fenêtre Windows. Les option de démarrage sont différentes d'un système d'exploitation à l'autre mais permettent de préciser au mieux le mode de démarrage. "L'exécution" d'un document, pour peu que son extension soit correctement associée, est aussi possible. START /max NOTEPAD autoexec.bat START /min MyDoc.wri ATTENTION: UNIQUEMENT SOUS WINDOWS2000 La commande Start support d'autres paramètres qui vont définir le type de priorité à accorder à l'application à exécuter de même que le type de mémoire à affecter aux clients Windows 16. 3.2.12 Title (Uniquement sous Windows 2000 ) Assure l'affichage d'un titre pour la fenêtre d'exécution. IF "%OS%"=="Windows_NT" TITLE VoiciMonFichier 3.2.13 Nouvelles commandes externes de Windows 2000 disponibles uniquement sous CMD.EXE PUSHD / POPD permet de sauver ou restaurer un répertoire. PUSHD s'utilise comme CD mais enregistre le répertoire de départ. OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 10 Fichier BATCH, bases de programmation AT permet de planifier l'exécution d'une tâche en ligne de commande SETLOCAL / ENDLOCAL en relation avec la commande SET permet de signaler que les variables créées sont à détruire ( SETLOCAL) ou à conserver (ENDLOCAL) après l'exécution du fichier script. De nombreuses commandes reçoivent des options supplémentaires: XCOPY permet par examples de déterminer les fichiers ou répertoire à EXCLURE d'une zone à copier 3.2.14 Précautions pour les noms de fichiers longs Si les noms de fichiers que vous manipulez sont des noms longs contenant au moins un espace, la majorité des commandes va considérer cet espace comme un séparateur de paramètres. MD c:\Les Eleves de 6QTTI Crée les répertoires suivants C:\Les C:\Elèves C:\De C:\6QTTI Alors que MD "c:\Les Eleves de 6QTTI" Crée le répertoire suivant C:\Les Eleves de 6QTTI Xcopy *.* c:\Mes documents Tente de copier *.* vers c:\Mes avec documents comme paramètre 3.2.15 Utilisation des commandes Pour toutes ces commandes, l'aide en ligne est toujours disponible: rappel "xxx /?" A partir de Windows 2000, n'hésitez pas à utiliser AllHelp.bat disponible sur http://www.robvanderwoude.com qui crée une page WEB regroupant l'aide en ligne de toutes les commandes disponibles sur votre station de travail! OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 11 Fichier BATCH, bases de programmation 4 Variables et autres astuces 4.1 Les variables système et autres Les systèmes d'exploitation tel DOS et WINDOWS utilisent tous des variables d'environnement contenant différents informations sur le système. La commande SET permet d'en visualiser l'état, d'en créer ou d'en modifier d'autres. Ces variables sont disponibles à l'intérieur d'un fichier BATCH ‘Fichier d'installation de l'application TS IF %OS%==Windows_NT XCOPY A:\*.* %ProgramFiles%\TS\*.* ‘Si la variable d'environnement OS (Windows NT4, 2000) est égale à Windows_NT, alors exécuter la copie 4.1.1 Définitions des variables personnalisées La commande SET permet de définir de nouvelles variables pour notre usage privé. ‘Fichier AUTOEXEC.BAT . . . SET MY_PC=6QTTI . . . ‘Fichier TEST.BAT SET MY_DIR = C:\6QTTI IF "%MY_PC%"=="6QTTI" ECHO PC installé par la 6QTTI XCOPY A:\*.* %MY_DIR% ATTENTION: UNIQUEMENT SOUS WINDOWS2000 La commande SET reçoit deux option bien intéressantes SET /P MY_PC=Quel est votre numéro de PC ? Lors de l'exécution, l'utilisateur répondant au clavier au message "Quel est votre numéro de PC ?" déterminera le contenu de la variable MY-PC SET /A MY_PC=%MY_PC%+1 Cette fois, le numéro de PC sera incrémenté d'une unité ( ou toute autre opération mathématique ) lors de l'exécution OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 12 Fichier BATCH, bases de programmation 4.1.2 Variables réservées au passage de paramètres Vous avez à préparer sur un nombre important de disquettes, une arborescence de répertoires dépendant de vos noms et prénoms d'utilisateurs: utilisez les fichier BATCH sans modération ! ‘Contenu du fichier Nom.bat Format a: /q A: MD %1 CD %1 MD %2 CD %2 ECHO Naissance le %3 > Date.txt ‘utilisation du fichier Nom.bat Nom Dupont Jean 12/05/72 ‘Contenu de la disquette de Jean Dupont a:\Dupont\Jean\Date.txt ‘Contenu du fichier Date.txt Naissance le 12/05/72 Il existe 9 possibilités de passage de paramètres vers un fichier BATCH, de %1 à %9. Si plus de 9 paramètres sont nécessaires, il est possible d'utiliser la commande SHIFT. (Voir 0) %0 permet de disposer du nom de fichier lui-même. Sous Windows, il est possible de réaliser plusieurs raccourcis vers un et un seul fichier BATCH tout en lui passant des paramètres de fonctionnement différents. En effet, dans les propriétés de ce raccourcis, ajoutez derrière le nom du fichier les paramètres que souhaitez transmettre. 4.2 Utilisation des redirecteurs Quoique bien pratique, ce fichier Nom.bat nécessite lors de chaque formatage votre intervention. L'utilisation des redirecteurs nous permet de limiter cette intervention. Créez un fichier texte (NON.TXT) qui contient toutes les réponses clavier que vous fournissez à "Format a: /q". ("Return" "Return" N"Return"). De même, si les messages affichés à l'écran vous perturbent, envoyez-les vers le périphérique de sortie NUL. Format a: /q < NON.TXT A: MD %1 > NUL 4.3 Utilisation des PIPES OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 13 Fichier BATCH, bases de programmation Vous souhaitez effacer un fichier sans confirmation, ou écrire l'adresse IP de votre machine dans un fichier texte, combinez toutes les subtilités disponibles en ligne de commande. if exist c:\toto.tst Echo y | del c:\toto.tst IpConfig |FIND "Adresse IP" >MonIP.txt 5 Autre utilisation des redirecteurs … Les redirecteurs permettent de remplacer la console par un fichier en entrée ( clavier ) ou en sortie ( écran ). Il est donc possible de créer un fichier texte à l’aide d’un fichier BATCH 5.1 Fichier texte seul Vous souhaitez enregistrer dans un journal le nom des utilisateurs qui ouvrent une session sur votre PC de même que la date et l’heure d’ouverture ?Placez cette ligne dans un fichier que vous déposerez dans le groupe démarrage du profil AllUser. Au fil des jours, votre c:\journal.txt se complètera à chaque ouverture ! echo %USERNAME%, %date%, %time% >> C:\journal.txt Vous souhaitez disposer d’un fichier texte reprenant tous les noms des ressources de type « partage de disque » de votre serveur ? La commande Net View assistée d’une redirection et de la commande FIND vous permet cela ! net view \\serveur | find "Disque" >>MesDisques.txt 5.2 Fichier html ou autre format particulier Une page html est constituée d’un fichier texte respectant une syntaxe et des balises particulières. Depuis Windows 2000, un caractère permet d’envoyer les symboles habituellement utilisés pour les redirections dans un fichier texte :^> et ^> seront transcrit dans un fichier comme < et >, de quoi encadrer les balises html. Dés cet instant, tout est possible !!! Voici une présentation élégante qui documente, archive votre intervention de sauvegarde. echo echo echo echo echo echo echo echo echo echo Date OR PYT 11/06 ^<HTML^> >d:\Saved.htm ^<BODY^> >>d:\Saved.htm ^<B^> >>d:\Saved.htm ^<BIG^> >>d:\Saved.htm Sauvegarde effectuée >>d:\Saved.htm sur %COMPUTERNAME% par %USERNAME% >>d:\Saved.htm ^<HR SIZE=3 WIDTH=500 ALIGN=LEFT^> >>d:\Saved.htm ^</BIG^> >>d:\Saved.htm ^</B^> >>d:\Saved.htm Date de sauvegarde: >>d:\Saved.htm /t >>d:\Saved.htm 6ème Q.T. Technicien en informatique LBSE2 14 Fichier BATCH, bases de programmation echo Time echo echo ECHO 5.3 à >>d:\Saved.htm /t >>d:\Saved.htm ^</B^> >>d:\Saved.htm ^</HTML^> >>d:\Saved.htm ^</BODY^> >>d:\Saved.htm Fichier script pour le style de votre page html Ajoutez dans votre fichier batch les informations de mise en page standard de votre document Web sous forme d’un fichier de style appelé dans votre page html MonBatch … … … Rem crée la page html avec appel du fichier de style echo ^<link href="main.css" rel="stylesheet" type="text/css" /^> >>MaPage.html … … … Rem crée le fichier main.css, style type MonBatch.bat | find " " | find /v "NotMe!" >main.css goto End :: main.css html, body { margin: 0px; padding: 0px; border: 0px; } :: Main End :End Lors de la commande Type MonBatch.bat, le premier FIND suivi de 5 espaces va « laisser sortir » toutes les lignes comprenant 5 espaces, soit les lignes contenues entre ::main.css et ::main end mais aussi la ligne de la commande Find. Pour éviter celle-ci, il « suffit » d’envoyer le résultat du premier FIND vers un second FIND qui « bloque la ligne contenant le texte « NotMe ! » soit cette ligne-ci ! 6 Et pour en savoir plus... Lancez une recherche "MSDOS BATCH FILES" sur votre moteur de recherche habituel! De nombreux sites, régulièrement mis à jour, incluant trucs et astuces pour chaque système d'exploitation sont accessibles. C'est la possibilité de rencontrer les GOUROUS du fichier BATCH!!! OR PYT 11/06 6ème Q.T. Technicien en informatique LBSE2 15