× Aktuálně z oboru

SHIELD Experience Upgrade 7 – méně hledání a více zábavy [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]
Celá zprávička [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]

Příkazová řádka – 7. lekce

[ http://programujte.com/profil/120-pavel-kosina/ ]Google [ :5:?rel=author ]       [ http://programujte.com/profil/75-martin-zak/ ]Google [ :?rel=author ]       10. 7. 2006       72 358×

Co se přesně děje, když v DOSu něco napíši a dám Enter? Jak vytvořit soubor? Jak do něj něco zapsat? Tak to je část věcí, které jsou dnes na řadě.


Opakování

N ež se dostaneme k „zajímavým“ věcem, je třeba si udělat zcela jasno v teorii. Jinak nám bude Příkazový řádek dělat něco, co my nechceme, a jako vždy to budeme svádět na špatně nakonfigurovaný počítač. V horším případě s tím sekneme, v lepším se zeptáme někde na fóru. Takže chvíli vydržte, je to důležité.

Co se přesně děje, když napíši v DOSu nějaký příkaz?

Když napíši např. „ahoj“ a dám Enter? Už jsme si to říkali, ale nevadí, teď to bude ucelené a přehledné:

  1. DOS se podívá do svých vnitřních příkazů, jestli tam náhodou není příkaz ahoj . Vnitřní příkazy jsou některé z těch, které získáte, dáte-li help. Ty zbylé ve výstupu příkazu help, které nejsou vnitřní, jsou tzv. vnější (viz níže).
  2. Pokud žádný takový nenajde (jakože nenajde, příkaz ahoj neexistuje), podívá se do aktuálního adresáře, jestli tam není soubor, který by se jmenoval ahoj.exe nebo podobně*. Pokud tam je, prostě se spustí, pokud tam není, DOS hledá dál…
    *Poznámka pro zvídavé: Do verze Windows 98 to bylo jednoduché – systém hledal soubory s příponami EXE, COM nebo BAT. Tuším s Win NT (a tedy i Win XP) systém může spouštět i soubory s příponami CMD, JS, VBS, atd. Kterékoliv si určíte. Všechny, které systém najde v systémové proměnné PATHEXT.

  3. Další místo nebo místa, kde DOS hledá, je PATH. Postupně projde všechny adresáře, které najde v PATH, a když poprvé narazí na soubor ahoj.exe nebo ahoj.XXX (viz výše), spustí ho. Zde, v jednom adresáři jménem c:\windows\system32, jsou také uloženy tzv. "vnější příkazy" (viz chybová hláška). Jsou to prostě programy exe, které jsou zde uloženy. Příkladem může být např.: label, chkdsk nebo i samotný help.
  4. Pokud ani v žádné z cest z PATH nic nenajde, ohlásí nám, že žádný takový soubor ani příkaz neexistuje. Asi takhle:

… není názvem vnitřního ani vnějšího příkazu, spustitelného programu nebo dávkového souboru.

Praktické důsledky výše uvedeného jsou ty, že vy jste si na 100 % jistí, že tam nějaký soubor nebo program máte a že to má fungovat, a přesto to hlásí tuto hlášku. 90 % chyb je v tom, že soubor (program) neleží ani v aktuálním adresáři, ani v adresářích PATH. Možná řešení jsou pak tato:

  1. Soubor dát do aktuálního adresáře
  2. Soubor dát do adresáře, který je v PATH
  3. Do PATH přidat adresář, kde leží váš soubor

Tip pro skutečné hackery [ http://www.zvon.org/ZvonHTML/Translations/hacker/front_cs.html ]

Ve výše uvedeném se skrývá návod, jak významnou měrou změnit chování počítače. Vytvoříte-li totiž soubor např. help.bat nebo help.exe a umístíte ho do adresáře, který je na čelních místech v PATH (nebo takový vytvoříte), přebijete chování samotného vnějšího příkazu help. Vyzkoušejte!


Jak vytvořit soubor?

Chceme-li v DOSu vytvářet soubor, musíme vždy dosti pečlivě rozmyslet, co to za soubor bude. Teď myslím rozdělení na textové a binární .

Textové soubory

Poznáte je snadno – uvnitř je celkem srozumitelný text, většinou jsou to textové soubory TXT (pozor, ne ty z Wordu), téměř všechny zdrojové programy všech programovacích jazyků, tedy CPP, PAS, PY, HTML, BAT…

Tyto typy souborů se vytvářejí celkem snadno. Klíčovým bodem je si pamatovat si >>. Ono to i vypadá jako šipky. A skutečně, například

echo ahoj >> pokus.txt

nevytiskne slovo ahoj na obrazovku, ale do souboru jménem pokus.txt. Pokud neexistuje, zároveň ho vytvoří. Pokud bychom toto napsali několikrát, budou v souboru pokus.txt přibývat řádky, na kterých je slovo ahoj.

Binární soubory

To jsou ty všechny ostatní, tedy ty, které když prohlížíte například v PSPadu, uvnitř je nesrozumitelná změť znaků, paznaků, jedniček a nul (v PSPadu jsou v hexadecimálním tvaru). Jsou to všechny EXE, COM, BIN, DLL, ale i všechny typy obrázků (JPG, PNG…), dále Wordovské DOC. DOC většinou začátečníky mate: Vždyť to přeci ve Wordu dokážu číst, to je textový soubor! Je i není. Není to pravý textový soubor, protože kromě znaků je tam binárně uchováno i formátování písma a mnoho dalšího. Otevřete si jeden DOC v PSPadu a uvidíte, o čem mluvím.

Většina těchto souborů ve Windows v Přkazovém řádku vytvářet nelze. Některé však ano, a to ty, ke kterým seženete patřičnou utilitu, program, který to umí, a který si nakopírujete někam, kde ho odevšad uvidíte (viz PATH). My si ukážeme, jak v příkazovém řádku balit ve formátu rar.


Rar

Rar je jen příklad, na němž si ukážeme, jak si vytvořit v DOSu komprimovaný soubor. DOS to sám o sobě neumí, takže potřebujeme někde sehnat nějaký WinRar pro DOS :-) Bude to možná rar.exe nebo podobně, ten pak nakopírujeme do některého adresáře, který máme v cestě, naučíme se, jak ho používat (jaké možné parametry použít) a bude to.

  1. Strýček Google [ http://www.google.com/search?hl=cs&q=rar+dos&btnG=Vyhledat+Googlem&lr= ] pomůže.
  2. Vyberte si některý odkaz a stáhněte si archiv, který je v exe.
  3. TC (nebo můžete i v DOSu :-) ) ho spusťte (rozbalte).
  4. Máte dvě možnosti – buď celý obsah adresáře rar nakopírovat do adresáře, který je uveden v PATH, nebo přímo adresář rar do PATH přidat [ http://programujte.com/clanek/2006032802-Prikazova-radka---3.-lekce ] .
  5. Možná jste si všimli, že hlavní soubor není rar.exe, ale rar32.exe, takže na to pozor.
  6. Malou nápovědu dostanete, napíšete-li rar32 /? .
  7. Hodně jednoduše řečeno:
    rar32 a jmeno_nového_archivu co_zabalit
    kde „a“ je příkaz „přidej do archivu – add“, no a další je jasné.

Problém s češtinou

Určitě při tomto způsobu narazíte na stejný problém jako já – rar32.exe vypisuje hodně chyb, a to v těch souborech, které mají v názvu české znaky. Prostě je neumí a do archivu je nepřidá. Kudy z toho ven? Chvíli jsem hledal a pak jsem přišel na to, že když si stáhnu WinRar, tak že v adresáři, který mi vznikne, je jeden soubor, který se jmenuje rar.exe, a to je ten, který již funguje bez problémů.


Úkol

Vytvořte v DOSu archiv rar, do kterého zabalíte soubory z c:\temp. Prosím, ať jich tam není moc, tak max. 10. Chci vidět jak samotný příkaz, tak výstup, jak jsou baleny jednotlivé soubory. Děkuji.


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2006070503-prikazova-radka-7-lekce/ ].