× Aktuálně z oboru

Programátoři po celém světě dnes slaví Den programátorů [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]
Celá zprávička [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]

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

[ http://programujte.com/profil/120-pavel-kosina/ ]Google [ :5:?rel=author ]       [ http://programujte.com/profil/20356-michal-zima/ ]Google [ ?rel=author ]       27. 4. 2006       74 902×

Začátečnické kopírování na Příkazovém řádku není věc, která je rychlejší nebo pohodlnější než v Total Commanderu. Rozhodně ale stojí za to se to naučit. Kopírovat bez myši, jen pomocí příkazů z klávesnice. Kopírovat budeme soubory i složky. Současně s tím si řekneme něco o takových divných znacích, které se někdy v názvech souborů vyskytují, jako např „*“.


xcopy

Předpokládám, že všichni z vás již někdy kopírovali. Ze začátku většinou v Tento počítač nebo Dokumenty, později snad v Průzkumníkovi. Předposlední metou všech kopírovačů je pak nějaký souborový manažer, např. Total Commander, kde se zvyšuje rychlost a efektivita několikanásobně oproti kopírování pomocí myši v Tento počítač. Poslední metou je pak kopírování v DOSu, případně různých programovacích jazycích, kdy si sami přesně určujete, co a kam chcete nakopírovat a kopíruje celé struktury adresářů na jeden Enter.


Cvičební script na tvorbu pomocných souborů

Dnes se budeme učit kopírovat v DOSu se vším, co s tím souvisí. Tedy hlavně zástupné symboly. Připravil jsem proto pro vás script napsaný v Pythonu, který vám v aktuálním adresáři, vytvoří 20 souborů s příponou txt, 20 s jpg, 20 s c, 20 s py a 20 s mp3. Celkem tedy 100 souborů. Proto bude třeba, abyste si nainstalovali Python. Není nic jednoduššího – klasická instalace OK – OK – Finish. Stahujte zde:

Následující kód si nakopírujte do souboru, například v PSPadu, soubor uložte pod názvem například soubory.py na vhodné místo - tam, kde budete chtít mít 100 cvičných souborů. Pak soubor stačí spustit - dvakrát na něj kliknout v Průzkumníkovi nebo na příkazové řádce napsat python soubory.py nebo dokonce i jen soubory.py. Při použití příkazové řádky ovšem musíte samozřejmě stát ve správné složce.


"""Tento skript je vytvoren v Pythonu a slouzi jako pomocny 
k teto lekci. V aktualnim adresari vam vyrobi desitky 
souboru s ruznymi priponami."""

import random

typy=[".txt",".jpg",".c",".py",".mp3"]
pocet=20

def jmeno():
    vyber=list("abcdefghijklmnopqrstuvwxyz0123456789")
    delka=random.randint(3,8)
    nazev=random.sample(vyber, delka)
    return "".join(nazev)
    
def vytvorSoubory(typ):
    for i in range(pocet):
        nazev= jmeno()+typ
        print nazev
        soubor=file(nazev,"w")
        soubor.write("Toto je zkusebni soubor " + typ)
        soubor.close()

# ----- hlavni program ---------------------------------

for typ in typy:
    vytvorSoubory(typ)
    
raw_input("\nStiskni Enter na ukonceni")

První xcopy

Pro kopírování v DOSu se používá příkaz copy nebo xcopy. xcopy je modernější verze, budeme tedy používat tuto. Pomocí xcopy /? získáte přehled všech možných parametrů, které xcopy přijímá. Nám však zatím bude stačit tato jednoduchá konstrukce:


xcopy odkud kam

To odkud i kam jsou cesty, buď absolutní nebo relativní. Jen připomenu, že pokud se v cestě náhodou objeví mezera, je nutno tuto cestu uzavřít do uvozovek.

  • Odkud udává soubor nebo soubory, které se mají kopírovat.
  • Kam udává, kam se mají soubory kopírovat.

Takže stojíme v adresáři, kde máme našich 100 souborů (někdo dokonce 101) a zkusíme kopírovat. Budeme kopírovat do složky c:\temp, tu doufám, že všichni máte. Pár příkladů, které si rozhodně vyzkoušejte:


del c:\temp\*.*     # smažeme vše, co je v této složce, ať máme čisto
xcopy *.* c:\temp   # nakopíruj vše do složky c:\temp
xcopy *.mp3 c:\temp # nakopíruj do složky pouze soubory s příponou mp3
xcopy a*.* c:\temp  # kopíruj všechny soubory, které začínají na písmeno 'a'
xcopy m*.py c:\temp # kopíruj všechny soubory, které začínají na 'm' a mají příponu py 

Pokud provádíte kopírování několikrát za sebou, určitě na vás vyběhne hláška:


C:\zkouska>xcopy *.* c:\temp
Přepsat C:\temp\0wgt.jpg (Ano/Ne/Vše)?

Stačí zadat ‚A‘ nebo ‚a‘ nebo ‚V‘ či ‚v‘ a kopírování probíhá dál. Pokud nechcete přepsat, tak jen ‚N‘ nebo ‚n‘. Chcete-li úplně přerušit kopírování, abyste nemuseli pořád mačkat nnnnnnnnnnnnn, tak stačí CTRL+C (držet CTRL a ťuknout do ‚C‘).


Zástupné znaky

Snad jste všichni poznali, že „*“ v předchozí ukázce příkazů znamená „VŠE“. Tedy např. *.txt značí VŠECHNY (*) soubory s příponou txt (.txt). „*“ značí vše, tedy nezáleží, jestli jméno má 3 nebo 20 znaků, prostě vše až do tečky, kde již začíná přípona.

Existuje ještě jeden zástupný znak, který se však využívá málo, a to je „?“. „?“ značí právě JEDEN jakýkoliv znak. Ukázka příkazů:


# kopíruj soubory, které začínají na "a" a mají přesně 3 znaky s libovolnou příponou
xcopy a??.* c:\temp  

# kopíruj soubory, které mají v názvu maximálně 3 znaky s libovolnou příponou
# První (a i druhý) ? může být totiž i "nic" (mezera), tudíž tomuto vzoru odpovídá i např. a.txt 
xcopy ???.* c:\temp  

# kopíruj všechny soubory, jejich přípona má maximálně 2 znaky  
xcopy *.?? c:\temp  

Druhé xcopy

Pomocí copy můžeme kopírovat nejen soubory, ale i celé složky. Vytvořte si tedy nějaké, nakopírujte si do nich nějaké soubory a zkuste následující. Já mám založeny adresáře hudba a python:


xcopy hudba c:\temp\hudba\     # kopíruj celý adresář hudba do temp (adresář hudba tam bude vytvořen)
xcopy hudba c:\temp            # kopíruj vše, co je ve složce hudba, do c:\temp (adresář nebude vytvořen)
xcopy hudba c:\temp\hudba      # DOS se nás zeptá, jestli chceme adresář vytvořit

Při tomto způsobu kopírování nedochází ke kopírování všech případných vnořených adresářů ve složce hudba. Jen soubory. Chceme-li nakopírovat úplně vše, všechny soubory i složky, které v „hudbě“ jsou, musíme použít přepínač /S:


xcopy /S hudba c:\temp\hudba\  # nebo taky
xcopy hudba c:\temp\hudba\ /S

Závěr

Tak na co jsem z této problematiky zapomněl, to nevím. Pokud to víte vy, dejte vědět. Rozhodně si vše vyzkoušejte, protože pouhým přečtením si zapamatujete málo, tedy pokud to máte jako já ;-) Jo a nezapomeňte na úkol.


Úkol

Tentokrát nechci vidět výsledky, které vám budou příkazy z úkolu vypisovat, protože by to byl velmi dlouhý seznam. Chci vidět jen ty příkazy. Nakopírujte do složky c:\temp z aktuálního adresáře následující soubory/složky

  • všechny soubory
  • všechny soubory s příponou jpg
  • všechny soubory, které začínají na písmeno „x“
  • všechny maximálně 4-místné soubory s libovolnou příponou
  • všechny céčkovské soubory, které začínají na „h“
  • celou složku (včetně podsložek) „filmy“


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