Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
En pratique : AmigaDOS 1.x - Fichier de traitement par lot
(Article écrit par Dominique Lorre et extrait d'Amiga News Tech - avril 1990)
|
|
Voici un exemple de programme qui permet de créer des fichiers "batch" (de traitement par lot). Un fichier de traitement
par lot est l'équivalent sur PC des fichiers script d'AmigaDOS. Or, les utilisateurs de PC n'ayant pas à
leur disposition la fabuleuse commande List d'AmigaDOS, ils ont souvent des problèmes énormes de manipulation de
leurs fichiers. Cela est également vrai pour ceux qui ont un Amiga avec la carte passerelle.
Il m'est arrivé un jour d'avoir à transférer une cinquantaine de fichiers de mon Amiga vers la carte passerelle.
Comme je suis relativement organisé, ils se trouvaient tous dans un répertoire que j'avais nommé "Transfert".
La commande avec la carte PC pour récupérer un fichier venant de l'Amiga est :
AREAD <nom du fichier Amiga> <nom du fichier PC>
|
L'idée d'avoir à taper cinquante fois cette ligne ne me passionnait pas énormément. C'est la commande
List qui m'a encore une fois sauvé la vie :
List > Sys:trans.bat Sys:Transfert LFORMAT "AREAD %S%S A:\%S"
|
Cela m'a créé un fichier "trans.bat" qui contenait la commande AREAD pour chacun des fichiers que
j'avais à transférer. Je n'ai plus eu qu'à ouvrir la fenêtre PC et faire :
AREAD Sys:trans.bat
trans
|
Après cela, je me suis rendu compte qu'AmigaDOS et tous les utilitaires de l'Amiga pouvaient être
très utiles pour les fichiers de la partie PC. L'exemple des polices que l'on copie sur plusieurs
disquettes peut facilement être reproduit pour des fichiers PC que l'on voudrait passer d'un disque
dur vers plusieurs disquettes. On peut vouloir éditer les fichiers PC avec un éditeur de texte Amiga, les
modifier avec NewZap, le seul souci que nous cause ces manipulations est qu'il vaut mieux posséder pas
mal de place en réserve dans la partie Amiga. La méthode à suivre est simple :
- Transfert des fichiers PC vers l'Amiga.
- Bidouilles en tous genres sur l'Amiga.
- Retour des fichiers PC au bercail.
A partir de là, les possibilités sont nombreuses. Jamais je n'édite un texte de plus de cinq
lignes sur PC. Ce n'est pas par préjugé mais parce que je ne connais pas les éditeurs de texte PC
(c'est donc par ignorance...), et que leur manque, entre autres, le couper-coller, les raccourcis
claviers, et la possibilité de manipuler plusieurs fichiers à la fois (...et aussi par exigence).
Mais cela vous le saviez.
En allant un peu plus loin, on apprend rapidement à éviter la lourdeur
légendaire des PC en faisant un détour par l'Amiga. Imaginez que vous possédez des documents provenant
d'un traitement de texte sur PC (disons qu'ils possèdent tous l'extension ".TX1") que vous
vouliez convertir au format d'un autre traitement de texte (avec l'extension ".TX2"). Pour cela,
on vous donne un utilitaire qui fonctionne de la manière suivante :
UTIL <fichier source> <fichier destination>
|
La solution PC/Amiga s'écrira :
Sous PC :
AWRITE *.TX1 SYS:Transfert/
|
Sous CLI :
List > SYS:util.bat SYS:Transfert/#?.TX1 LFORMAT "UTIL %S%S2" Delete #?.TX1
|
Sous PC :
Une fois encore, la commande List vous a tiré d'affaire. Comme vous allez finir par penser que je ne
connais qu'elle, je vais vous donner un exemple de ce que l'on peut faire avec Copy ou Rename (en
AmigaOS 1.3 et sous Shell uniquement). Quand vous entrez la commande :
...le Shell renvoit la réponse "FROM/A,TO=AS/A:"
qui indique les paramètres de la commande. La commande attend ensuite que vous entriez les
paramètres. C'était surtout utile en AmigaOS 1.2 pour ceux qui n'avaient qu'un seul lecteur de
disquette car ils pouvaient entrer une autre disquette que le Workbench et renommer le fichier
qu'ils voulaient. Mais ces paramètres ne servent pas uniquement à vous indiquer comment utiliser
la commande. Vous pouvez entrer au choix :
Rename ancien_nom nouveau_nom
|
Ou :
Rename FROM ancien_nom AS nouveau_nom
|
Vous me direz que la deuxième forme est seulement là pour faire joli et qu'elle ne sert à rien.
Ce qui est parfaitement faux. La commande Rename vous sert notamment quand vous voulez modifier
votre startup-sequence. Dans ce cas, vous allez vouloir conserver un exemplaire de l'ancienne :
Rename FROM S:startup-sequence AS S:startup-sequence.anc
Copy FROM S:startup-sequence.old TO S:startup-sequence
|
Ensuite, vous aller éditer votre nouvelle startup-sequence. Au bout d'un certain temps,
vous aurez envie de revenir à la startup-sequence originale car la première aura été
trop modifiée. Les deux lignes à entrer sont :
Rename FROM S:startup-sequence AS S:startup-sequence.old
Rename AS S:startup-sequence FROM S:startup-sequence.anc
|
Sous CLI, cela n'a aucun intérêt. Mais sous Shell, en utilisant l'historique des commandes
et le déplacement avec les touches fléchées, vous allez y gagner énormément de temps
car vous n'aurez qu'à intervertir les mots-clé "FROM" et "AS". Ce qui est valable avec Rename,
l'est aussi avec Copy et Type.
Nous sommes encore bien loin d'avoir exploré toutes les ressources du Shell. En mode direct,
il existe trois manières de valider une commande : la touche "Return" (ou "Enter"), et les
séquences de touches "<Ctrl>-\" et "<Ctrl>-J". Le Return est le procédé normal utilisé
pour valider ses commandes. Le <Ctrl>-\ est utilisé par les fichiers script et est très
mal géré par AmigaDOS. Il désigne en principe la fin de fichier mais souvent un caractère
"ÿ" (y tréma) se trouve inséré, ce qui entraîne des erreurs par exemple quand un fichier de
commande se termine abruptement. Le <Ctrl>-J est, lui, particulièrement utile. Les commandes
séparées par un <Ctrl>-J ne sont pas exécutées immédiatement. Ainsi, on peut lancer des
commandes telles que celle-ci :
Date<Ctrl>-J
List<Ctrl>-J
Date<Return>
|
Les commandes ne seront exécutées qu'après le "Return" : c'est une manière simple de chronométrer
un programme sans créer un fichier script pour cela. Une possibilité amusante des fichiers script
est leur utilisation en mode direct. Essayez la commande suivante :
Execute *
IF Exists S:startup-sequence
Echo "Ce fichier existe"
Else
Echo "Ce fichier n'existe pas"
Endif
<Ctrl>-\
|
C'est la seule manière d'utiliser la commande "If" en mode direct. Cela peut-être utile si
l'on veut vérifier qu'une commande que l'on ne connaît pas ou que l'on a créé gère bien les
codes de retour :
Execute *
Ask "Oui ou Non (Y/N)"
Y
IF WARN
Echo "ok"
Else
Echo "non"
Endif
<Ctrl>-\
|
Ici, nous obtiendrons "ok" comme réponse.
Le mois prochain, nous allons nous attaquer aux fichiers script.
|