AMIGA REVIEW online
  Uvodná stránka     Software     Hry     Obaly     Download     Kniha návštev     Amiga na PC     Amiga Forever  

AmigaDOS IV

Jan Hlavatý

V této části budeme pokračovat ve výčtu příkazů AmigaDOSu z minula.

Předem se pokusím napravit chybičku, která se vloudila do minulého dílu, kde jsem popisoval dědičnost procesů shellu. Mylně jsem uvedl, že seznam adresářů programů PATH se nedědí - není tomu tak. PATH se dědí také. Sorry.

FAULT
/N/M
Příkaz FAULT vypíše text chyby, který se vztahuje k zadaným chybovým kódům.

FIXFONTS
Tento příkaz provede aktualizaci seznamu dostupných velikostí pro všechny instalované fonty. Vytvoří pro každý font odpovídající soubor s příponou „.font“, do kterého zapíše všechny dostupné velikostí fontu nalezené v jeho datovém adresáři.

GET
NAME/A
Vypíše obsah lokální proměnné procesu. Argumentem je jméno této proměnné.

GETENV
NAME/A
Vypíše obsah globální dosové proměnné, podobně jako příkaz GET vypíše obsah proměnné lokální.

ICONX
Toto není tak docela příkaz AmigaDOSu ale spíš Workbenche, nicméně ho zde popíši, protože je v úzkém spojení s dávkovými soubory, kterými se budeme zabývat. Slouží totiž k pohodlnému spouštění dávkových souborů z Workbenche pomocí ikony typu Projekt. Tuto ikonu přiřadíte dávkovému souboru a její „Default tool“ nastavíte na „IconX“. Po dvojitém nakliknutí této ikony bude dávkový soubor spuštěn podobně jako příkazem EXECUTE. V tooltypes ikony můžete nastavit několik parametrů: Pomocí WINDOW=<popis okna> můžete specifikovat jaké okno se použije pro standardní vstup/výstup. DELAY=<hodnota v 1/50s> určíte jak dlouho po skončení provádění dávky má ještě okno zůstat otevřené (pokud jste nespecifikovali klíčové slovo WAIT v popisu okna CON:). Pomocí STACK=<velikost zásobníku> můžete nastavit počáteční velikost zásobníku pro proces Shellu který bude použit k vykonání dávky. Pomocí rozšířeného výběru můžete přidat dávce argumenty stejným způsobem jako ostatním Workbenchovým programům.

IF
NOT/S, WARN/S, ERROR/S, FAIL/S, EQ/S, GT/S, GE/S, VAL/S, EXISTS/S
Tento příkaz je použitelný pouze v dávkových souborech a umožňuje podmíněné vykonání úseku dávky. K dispozici je několik různých podmínek které určují zda se daný úsek vykoná nebo ne. Tento úsek je ohraničen příkazem IF s podmínkou na začátku a příkazem ENDIF na konci. Je zde také možnost vložit bloky dva jeden se vykoná pokud je podmínka splněna, druhý pokud splněna není. Tento alternativní blok se označí příkazem ELSE. Celý úsek dávky pak vypadá takto: IF <podmínka> <blok příkazů pro splněnou podmínku> ELSE <blok příkazů pro nesplněnou podmínku> ENDIF. Podmíněné bloky je možno vnořovat.
Podmínky použitelné pro větvení dávky jsou následující:
NOT - toto klíčové slovo v kombinaci s jakoukoli další podmínkou znamená její negaci (opačný význam)
WARN - tato podmínka je splněna, má-li návratový kód předchozího příkazu (RC) hodnotu alespoň 5 (varování).
ERROR - tato podmínka je splněna, má-li návratový kód předchozího příkazu (RC) hodnotu alespoň 10 (chyba).
FAIL - tato podmínka je splněna, má li návratový kód předchozího příkazu (RC) hodnotu alespoň 20 (selhání). Tuto podmínku využijete pouze v případě, že automatické selhání dávky je nastaveno na vyšší hodnotu příkazem FAILAT (jinak bude dávka při selhání ukončena).
EXISTS <jméno souboru> - podmínka je splněna když je objekt určený jménem souboru k nalezení. Pokud chcete testovat existenci assignu bez toho aby se objevil requester žádající o vložení disku s tímto jménem, použijte místo toho příkaz ASSIGN <jméno assignu> EXISTS a testujte jeho návratový kód pomocí WARN.
<řetězec1> EQ <řetězec2> - je splněna, pokud jsou si znakové řetězce rovny. Nebere v úvahu malá/velká písmena.
<řetězec1> GE <řetězec2> - je splněna, pokud hodnota řetězce 1 je větší nebo rovna řetězci 2 (textově), nebo pokud specifikujete klíčové slovo VAL, berou se řetězce jako numerické hodnoty.
<řetězec1> GT <řetězec2> -je splněna, pokud hodnota řetězce 1 je větší než hodnota řetězce 2 (textově), nebo pokud specifikujete klíčové slovo VAL, berou se řetězce jako numerické hodnoty.
Podmínky „menší“ a „menší nebo rovno“ vyrobíte snadno pomocí NOT GE a NOT GT. Samozřejmě že v dávkovém souboru můžete používat dosové proměnné na místě řetězců.

INFO
DEVICE
Tento příkaz vypíše informace o médiích dostupných DOSu. Bez argumentu DEVICE vypíše informace o všech médiích, nebo pokud jako argument zadáte jméno jednoho zařízení/média, vypíše informace jen o něm. Vypisuje jméno zařízení ve kterém je médium umístěno, celkovou velikost média, počet použitých a volných bloků, stupeň zaplnění v procentech, počet chyb zjištěných na médiu, stav média a jméno média.

INSTALL
DRIVE/A, NOBOOT/S, CHECK/S, FFS/ S
Tento příkaz umí zapsat na disketu bootblock. Tím je možno učinit disketu bootovatelnou pod AmigaDOSem. Bootblock je také možno z diskety smazat pomocí klíčového slova NOBOOT. Lze také provést kontrolu bootblocku pomocí CHECK - návratový kód je nastaven na 5 (warn) v případě že disketa obsahuje spustitelný bootblock, který se však liší od standardního bootblocku systému. Tim lze udělat jednoduchou kontrolu proti bootblockovým virům. FFS nemá žádnou funkci a je zde už jen z důvodu kompatibility se staršími verzemi systému.

JOIN
FILE/M/A, AS=TO/K/A
Tímto příkazem lze spojit několik souborů dohromady. Argumenty jsou vstupní soubory, které se spojí dohromady v pořadí v jakém jsou uvedeny, a za klíčovým slovem TO následuje jméno výsledného souboru, do kterého se vstupní soubory spojí.

LAB
Tento příkaz označuje návěstí v dávkovém souboru (místo na které se dá skočit příkazem SKIP). Není to skutečný příkaz, slouží pouze k označení místa pro skok a je vyhledáván příkazem SKIP. Za LAB se uvádí jméno návěstí. Může být libovolně dlouhé, ale pokud obsahuje mezery musí být uzavřeno do uvozovek.

LIST
DIR/M, P=PAT/K, KEYS/S, DATES/S, NODATES/S, TO/K, SUB/K, SINCE/K, UPTO/K, QUICK/S, BLOCK/S, NOHEAD/S, FILES/S, DIRS/S, LFORMAT/K, ALL/S
Tohle je opět jeden ze zajímavějších příkazů. Stručně řečeno, slouží k vypisování obsahu adresářů, podobně jako DIR. Narozdíl od DIR, který slouží k orientaci uživatele ve struktuře adresářů, umožňuje LIST pořídit informace o jakýchkoli vlastnostech jakýchkoli souborů a ty pak vypsat v požadovaném formátu. Kromě obyčejných patternů umožňuje LIST vypisovat například pouze soubory (klíčové slovo FILES) nebo pouze adresáře (klíčové slovo DIRS), omezit rozsah vypisovaných souborů podle jejich data (SINCE <datum> pro soubory novější než <datum>, UPTO <datum> pro soubory starší než <datum>, nebo obojí pro rozsah), případně požadovat soubory jejichž jméno obsahu-je určitý řetězec (SUB <řetězec>, což odpovídá patternu #?<řetězec>#?>). Formátovací řetězec pro specifikaci výstupního formátu se zadává pomocí klíčového slova LFORMAT=„řetězec“. Speciální symboly označují místa pro vkládání údajů. Možnosti jsou:
%a - atributy souboru
%b - velikost souboru v blocích
%c - komentář souboru
%d - datum poslední změny
%e - koncovka jména souboru (vše za poslední tečkou ve jméně souboru)
%k - klíč souboru (jednoznačný identifikátor souboru v rámci média obvykle číslo prvního bloku souboru, ale není podmínkou)
%l - délka souboru v byte
%m - jméno souboru bez koncovky (a bez tečky - tedy pozor na jména končící tečkou)
%n - jméno souboru
%p - cesta k souboru (adresář ve kterém je soubor/adresář umístěn)
%t - čas poslední změny
%s - tohle je složitější. Pokud se %s vyskytuje ve formátovacím řetězci jen jednou, bude to jméno souboru. Pokud dvakrát, bude to cesta pro první u jméno souboru pro druhý výskyt. Pokud třikrát, bude to cesta, jméno souboru a ještě jednou jméno souboru. Pokud čtyřikrát a více, bude to cesta pro první a třetí výskyt, zbytek budou jména souboru.
QUICK, BLOCK, DATES, KEYS a NODATES ovlivňují implicitní formát výstupu, pokud není LFORMAT specifikován. Normálně se vypisují jméno souboru, délka souboru, atributy souboru, datum souboru v „lidském“ tvaru (tj. včetně „dnes“, „včera“ atd.), čas souboru a (pokud existuje) na dalším sádku komentář souboru, před kterým je pro identif7kaci vložen znak „:“ a mezera. QUICK způsobí, že se vypisují pouze jména souborů. BLOCK způsobí vypisování délky souboru v blocích místo v bajtech (blok je obvykle dlouhý 512 bajtů a je to nejmenší jednotka v jaké se rozděluje místo na médiu). KEYS způsobí že se navíc vypíšou klíče souborů, NODATES vypne vypisování datumu. DATES způsobí, že se nepoužívají speciální názvy jako „včera“ v datumech. Pokud je zadán QUICK, DATES způsobí že se kromě jmen souborů vypíší i jejich datumy.
Volba ALL způsobí rekurzivní prohledávání i vnořených adresářů. Volba NOHEAD zakáže vypisování řádku hlavičky na začátku každého vypisovaného adresáře a celkových informací na konci.

LOCK
DRIVE/A, ON/S, OFF/S, PASSKEY
Tento příkaz slouží k softwarové ochraně médií proti zápisu. Užitečný je zejména u harddisku, kde hardwarová ochrana proti zápisu neexistuje. Argument DRIVE je jméno média nebo nařízení které chcete chránit. Klíčové slova ON znamená že chcete ochranu zapnout, OFF že vypnout. Kromě prostého zapnutí/vypnutí můžete ještě při ON specifikovat heslo, které pak bude nutné ke zrušení ochrany. Ochrana se NEZAPISUJE na médium ani nikam jinam, trvá tedy jen do příštího rebootu/vypnutí počítače. Neslouží tedy k ochraně před uživatelem, ale spíš přel programy. které by se mohly pokusit o nežádoucí změny na médiu.

MAKEDIR
NAME/M
Tímto příkazem vytvoříte nový adresář na médiu. Narozdíl od Workbenche nevytváří pro adresáře ikony. Můžete vytvořit i víc adresářů najednou, pokud uvedete víc argumentů. Pokud vytváříte několik vnořených adresářů, musíte je specifikovat v takovém pořadí, aby adresář ve kterém chcete vytvořit vnořený adresář vždy už existoval.

MAKELINK
FROM/A. TO/A, HARD/A, FORCE/S
Tímto příkazem lze vytvořit speciální odkazy v rámci média - LINKS. Linky Jsou objekty podobně jako soubory a adresáře a mohou představovat jak soubor, tak adresář. Rozdíl je v tom, že fyzické umístění souboru nebo adresáře na který se link odkazuje je ve struktuře adresářů média někde jinde a nebo pod jiným jménem. Tím je možné docílit toho, že různá jména se odkazují na tentýž objekt. Když link smažete, vymaže se pouze link samotný, nikoliv objekt na který odkazuje. Argument FROM je jméno linku, argument TO je objekt na který link bude ukazovat. Pokud chcete vytvořit link na adresář, musíte specifikovat ještě klíčová slovo FORCE.

MOUNT
DEVICE/M, FROM/K
Tento příkaz slouží k zamontování nových dosových zařízení do systému. Soubor s popisem zařízení se jménem stejným jako název zařízení bez dvojtečky může být uložen v DEVS:DosDrivers, SYS:Storage/DosDrivers nebo být ve stylu starých verzí OS (1.3) součástí souboru DEVS:MountList. Můžete také uvést pattern pro zamontování více zařízení najednou (jak je tomu například ve standardní startup-sequenci MOUNT DEVS:DOSDrivers/~(#?.info)).

NEWCLI, NEWSHELL
WINDOW, FROM
Tímto příkazem se spouští nový proces Shellu. Nový proces zdědí prostředí z procesu který ho vytvořil, jak jsme o tom hovořili na začátku minulého dílu Argument WINDOW obsahuje popis okna pro vstup/výstup pro tento nový shell a obvykle to bývá popis okna zařízení CON:. Použít lze i jiný handler, který umožňuje interaktivní provoz (např. AUX). Argument FROM udává jméno dávkového souboru, který se upustí ihned po vytvoření nového procesu Shellu, podobně jako se startup-sequence spouští po vytvoření prvního procesu Shellu při rebootu. Pokud tato dávka neobsahuje příkaz ENDSHELL/ENDCLI, pokračuje pak tento proces Shellu po skončení zpracování dávky v interaktivním režimu.

PATH
PATH/M, ADD/S, SHOW/S, RESET/S, REMOVE/S, QUIET/S
Tímto příkazem můžete ovlivnit, kde všude se budou hledat příkazy AmigaDOSu když napíšete jen jejich jméno a ne cestu kde jsou umístěny. Minimálním obsahem PATH je implicitní adresář na začátku a C: na konci. Mezi tyto dvě položky můžete přidat Další adresáře, ve kterých se má příkaz hledat. PATH bez argumentů nebo s argumentem SHOW vypíše aktuální seznam PATH pro tento proces Shellu. Pokut uvedete za příkaz PATH název adresáře a (nepovinní) ADD, přidá se tento adresář do seznamu prohledávaných adresářů. Pokud uvedete jméno adresáře a REMOVE, bude tento adresář ze seznamu odstraněn (pokud tam je). Klíčové slovo RESET způsobí vynulování seznamu, takže v ním zůstane pouze implicitní adresář a C:. Pokud je v seznamu adresář který se nachází na médiu které není zrovna v mechanice a vy si vypíšete seznam PATH, objeví se requester žádající o vložení této diskety. Tomu lze zabránit použitím QUIET.

PROMPT
PROMPT
Nataví textový řetězec, kterým vás proces Shellu vyzývá k vložení příkazu. Tento řetězec může obsahovat značky pro vložení tří údajů o procesu Shellu:
%n - číslo tohoto procesu shellu
%s - aktuální implicitní adresář
%r - návratový kód posledního příkazu
Pokud zadáte příkaz PROMPT bez parametrů, nastaví se řetězec na implicitní: „%n.%s>“, tj. udává číslo shellu a adresář. Ve formátovacím řetězci můžete s výhodou použít ANSI escape sekvence, jako třeba:
prompt „*E[2m%n.%s>*E[0m“
což způsobí, že se výzva bude vypisovat jinou barvou než ostatní text. Dokonce je možné do výzvy vložit text vygenerovaný jiným příkazem pomocí zpětných apostrofů . Tady pozor na vyhodnocování:
prompt „date >“
se vyhodnotí pouze jednou při zadání příkazu date, takže ve výzvě bude vždy totéž datum a čas. Pokud však použijete „*“, jako escape pro „“, tj. napíšete „*“ místo „“, vloží se do výzvy text „date “ místo vyhodnocení výstupu příkazu date. To nastane až teprve když se prompt vypisuje, takže se zobrazí aktuální datum a čas:
prompt „* date*>“.
Pomocí * můžete tedy odsunout efekt některých speciálních znaků až na další zpracování (v textu sice, jsou, ale nezpracují se jako speciální). Pokud chcete zamezit i zpracování samotné *, napište místo ní dvě: **. Pomocí * lze zapsat např. uvozovku: *“, obrácený apostrof *, znak konec řádku *N noho znak Escape *E.

PROTECT
FILE/A, FLAGS, ADD/S, SUB/S, ALL/S, QUIET/S
Tímto příkazem lze nastavovat atributy souboru. Možné atributy souboru jsou:
s - script: Tento soubor je dávkový soubor Shellu a pokud byl spuštěn jako příkaz, bude vykonán pomocí EXECUTE.
p - pure: Tento program byl naprogramován speciálním způsobem tak, že je možné sdílení téhož programu v paměti více procesy. To znamená, že pro každé další současné spuštění tohoto programu lze použít kód programu který už je v paměti bez toho aby došlo ke konfliktu. Základním požadavkem pro tento druh programu je, že se kód programu uložený v paměti tak aby byl nahrán NIKDY NEZMĚNÍ. To znamená, že kótové segmenty programu neobsahují žádná data - data se ukládají buď na zásobníku, nebo v alokovaném bloku paměti jehož adresa je uložena v některém adresovém registru. Jedině takovýto program, je možné nahrát natrvalo do paměti pomocí příkazu RESIDENT. Většina systémových příkazů AmigaDOSu je napsána touto technologií. Bohužel, k mému překvapení, na systémových disketách Workbenche 3.1, jsou tyto atributy VYMAZÁNY! Chybička se vloudí... Na starých disketách Workbench 3.0 od Commodore byly tyto atributy nastaveny korektně... Nezbývá než juknout na starý Workbench 3.0 a atributy si nastavit podle něj...
a - archived: Soubor nebyl změněn od poslední archivace. Tento bit je vymazán při jakékoliv změně v souboru. Toho je možno s výhodou využít pro sledování změn - při každé kontrole bit nastavit a příště pak snadno poznáte který soubor se směnil podle vymazaného bitu archived.
r - readable: Soubor je možno číst. Pokud tento bit vymažete, nelze soubor otevřít pro čtení.
w - writeable: Do souboru je možno zapisovat. Pokud tento bit vymažete, nebude možno do souboru zapisovat.
e - executable: Soubor lze spustit. Pokut tento bit vymažete, nepůjde soubor spustit jako program i když je to programový soubor. Tím byste mohli například zabránit nežádoucímu spuštění programu o kterém víte, že obsahuje virus a přesto si ho chcete nechat.
d - deletable: Soubor lze vymazat. Pokud tento bit smažete, nepůjde soubor vymazat. Pozor, některé programy používají při přepisování souborů tuto technologii: Vytvoří nový soubor s dočasným názvem. Do něj uloží obsah nového souboru, pak původní soubor smažou, nový soubor přejmenují na jméno smazaného souboru. Tato technologie je bezpečnější pro případ náhlé katastrofy než přímé přepisování původního souboru. Pokud tedy zakážete smazání souboru, může se vám stát že ho nebudete moci ani modifikovat.

QUIT
RN/C
Tento příkaz.je použitelný pouze v dávkových souborech. Způsobí okamžité přerušení vykonávání dávkového souboru a nastavení jeho návratového kótu na hodnotu uvedenou v argumentu RC.

RELABEL
DRIVE/A,NAME/A
Tímto příkazem lze přejmenovat médium. DRIVE je současné jméno přejmenovávaného média nebo drive ve kterém je médium umístěno, včetně dvojtečky na konci. NAME je nové jméno média, tentokrát BEZ dvojtečky. na konci.

REMRAD
DEVICE, FORCE/S
Způsobí likvidaci resetu vzdorného ramdisku RAD:. Paměť zabíraná tímto ramdiskem je okamžitě uvolněna a ramdisk nebude nadále přístupný. DEVICE je jméno zařízení tohoto resetuvzdorného ramdisku (obhospodařovaného ramdrive.device), pokud je jiné než. RAD:. FORCE vynutí likvidaci ramdisku i když se používá.
To je pro dnešek vše, při troše štěstí příště tento popis dokončíme a možná už i začneme experimentovat s dávkovými soubory.

Vytlačiť článok


© ATLANTIDA Publishing Všechna práva vyhrazena.
Žádna část nesmí být reprodukována nebo jinak šířena bez písemného svolení vydavatele.



Amiga na Vašem PC rychle, snadno a zdarma!


none

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )