Q | Qu'est-ce qu'un fichier BATCH ? |
R | Batch veut dire "lot" en anglais. Un
fichier batch est un programme écrit en mode texte et qui a l'extension
".bat". Il permet de lancer une ou plusieurs commandes DOS à la
suite l'une de l'autre, et ainsi d'automatiser des tâches fastidieuses.
Exemple, le fichier suivant, que l'on appellera repare.bat :
scandisk /surface /custom /autofix /nosummary
permettra à votre ordinateur de faire une maintenance complète de votre disque dur sans que vous soyez planté devant à attendre que la machine vous demande des instructions :-) (Petite précision cependant : il vous faudra d'abord paramétrer scandisk correctement en éditant le fichier scandisk.ini.) |
Q | Comment écrire des batches ? |
R | Utilisez un éditeur de texte. Notepad de Windows fera parfaitement l'affaire, à condition de ne pas taper de caractères accentués. Sinon, utilisez le programme EDIT du DOS. |
Q | Je voudrais apprendre à faire des fichiers BATCH. |
R | Achetez l'excellent livre de Franck Lohéac, Les fichiers Batch sous MS-DOS publié chez Marabout Informatique ou allez voir les pages de Nicolas : http://www.multimania.com/nlsn/ |
Q | Comment résoudre un problème particulièrement ardu en batch ? |
R | Personne n'a su vous répondre dans le forum
fr.comp.os.msdos ? Admettons.
Alors : Téléchargez ce document (merci à Sylvain Jeanneret) : http://perso.wanadoo.fr/samuel.gaze/commun/batch.zip Voyez la faq du site http://bigfoot.com/~batfiles/ Téléchargez celle de Timo Salmi : ftp://garbo.uwasa.fi/pc/ts/tsbat58.zip lequel Timo Salmi a aussi commis cette page de liens pour compléter votre culture des batches : http://www.uwasa.fi/~ts/http/http2.html#batch Les trois dernières adresses sont malheureusement en anglais. Si malgré tout ça ne vous suffisait
pas encore, les pros du bath se retrouvent sur alt.msdos.batch
et sur alt.msdos.batch.nt
|
Q | Récupérer l'heure ou la date dans une variable. |
R | avec un batch un peu tordu, utilisant
sadiquement certaines fonctions, on peut :
* settime.bat: command /e:2000 /c for %%i in (1 2) do prompt set _t=$t$_ | find "$" /v >{t}.bat for %%c in (call del) do %%c {t}.bat (en 2 lignes : la première commence par "command", la 2è par "for %%c") * setdate.bat:
|
Q | Récupérer le répertoire courant dans une variable |
R | C'est le même principe que ci-dessus
: modification du PROMPT, redirection dans un batch que l'on exécute
deux fois :
@ echo off rem>#a#.bat set oldprompt=%prompt% prompt set rep$q$p command /c #a#.bat>#b#.bat call #b#.bat set prompt=%oldprompt% set oldprompt= del #?#.bat |
Q | Est-il possible de faire un programme batch qui demande en cours d'exécution des instructions à l'utilisateur, comme par exemple l'instruction "input" du BASIC ? |
R | Les batches sont théoriquement faits pour s'exécuter
par lot. Ce ne sont pas des rogrammes
interactifs. Mais comme rien n'est impossible avec le système D, voici le principe : Pas de problème mais juste un peu de jugeotte...
(Merci à Denis Blomme) |