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é:
- 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).
-
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. - 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.
- 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:
- Soubor dát do aktuálního adresáře
- Soubor dát do adresáře, který je v PATH
- Do PATH přidat adresář, kde leží váš soubor
Tip pro skutečné hackery
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.
- Strýček Google pomůže.
- Vyberte si některý odkaz a stáhněte si archiv, který je v exe.
- V TC (nebo můžete i v DOSu :-) ) ho spusťte (rozbalte).
- 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 .
- Možná jste si všimli, že hlavní soubor není rar.exe, ale rar32.exe, takže na to pozor.
- Malou nápovědu dostanete, napíšete-li
rar32 /?
. - Hodně jednoduše řečeno:
kde „a“ je příkaz „přidej do archivu – add“, no a další je jasné.rar32 a jmeno_nového_archivu co_zabalit
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.