Python týden
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu
80 % bodů zdarma na online výuku díky naší Letní akci!

1.díl - Základy práce se soubory a složkami v Batch-i

V dnešním tutoriálu si ukážeme základy práce se soubory a složkami vytvoříme si pár testovacích programů.

Nejprve si popíšeme pár příkazů:

Soubory

Find => Find text cesta+soubor - Vyhledá zadaný text v zadaném souboru

Copy => Copy zdrojová cesta, cílová cesta - zkopíruje jeden nebo více souborů

Del => Del cesta - vymaže jeden nebo více souborů

Move => Move zdrojová cesta, cílová cesta - přemístí jeden nebo více souborů

Ren => Ren cesta nový název - přejmenuje soubor

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Složky

Dir => Dir cesta - Zobrazí informace o složce, kde je zadaná složka, jak se jmenuje daná složka, jaké má sériové číslo, datumy a časy vytvoření, o jaký typ souboru, který se ve složce nachází, se jedná (např. soubor.txt nebo soubor.jar nebo dir tedy složka), jakou má velikost, kolik je na jednotce volného místa, kolik tam je souborů a kolik složek a jiné.

Copy => Copy zdrojová cesta, cílová cesta - zkopíruje jeden nebo více obsahů složek

Del => Del cesta - vymaže jeden nebo více obsahů složek

Move => Move zdrojová cesta, cílová cesta - přemístí jeden nebo více obsahů složek

Ren => Ren cesta nový název - přejmenuje složku

To by na začátek stačilo ... A teď si pojďme vytvořit program, který by nám měnil konfigurační soubor pro nějakou hru.

Náš algoritmus bude vypadat nějak takhle:

___________________________
|Zadání požadované verze   |
|__________________________|
             ||
             ||
             VV
__________________________________
|Vymazání souboru aktuální verze  |
|_________________________________|
             ||
             ||
             VV
_______________________________________
|Zkopírování souboru požadované verze  |
|______________________________________|
             ||
             ||
             VV
_______________________________________
|Přejmenování souboru požadované verze |
|______________________________________|

Pomocí našich schopností, bychom to měli zvládnout v pohodě. Začneme běžně a budeme pokračovat podle našeho algoritmu.

GameGM je nějaká hra.

Konfigurační soubor se jmenuje gamegm.txt

@echo off
title Menic verze pro GameGM
:otazka
set /p A=Zadejte pozadovanou verzi GameGM [1.0/1.1/1.2/1.3/1.4] :
if %A%==1.0 goto 10
if %A%==1.1 goto 11
if %A%==1.2 goto 12
if %A%==1.3 goto 13
if %A%==1.4 goto 14
echo Nesprávně zadaná verze !
goto otazka

:10
del "C:\Users\User\Desktop\GameGM\gamegm.txt"
copy "C:\Users\User\Desktop\GameGM\Verzie\gamegm_1_0.txt" "C:\Users\User\Desktop\GameGM\"
ren "C:\Users\User\Desktop\GameGM\gamegm_1_0.txt" "gamegm.txt"
goto end

:11
del "C:\Users\User\Desktop\GameGM\gamegm.txt"
copy "C:\Users\User\Desktop\GameGM\Verzie\gamegm_1_1.txt" "C:\Users\User\Desktop\GameGM\"
ren "C:\Users\User\Desktop\GameGM\gamegm_1_1.txt" "gamegm.txt"
goto end

:12
del "C:\Users\User\Desktop\GameGM\gamegm.txt"
copy "C:\Users\User\Desktop\GameGM\Verzie\gamegm_1_2.txt" "C:\Users\User\Desktop\GameGM\"
ren "C:\Users\User\Desktop\GameGM\gamegm_1_2.txt" "gamegm.txt"
goto end

:13
del "C:\Users\User\Desktop\GameGM\gamegm.txt"
copy "C:\Users\User\Desktop\GameGM\Verzie\gamegm_1_3.txt" "C:\Users\User\Desktop\GameGM\"
ren "C:\Users\User\Desktop\GameGM\gamegm_1_3.txt" "gamegm.txt"
goto end

:14
del "C:\Users\User\Desktop\GameGM\gamegm.txt"
copy "C:\Users\User\Desktop\GameGM\Verzie\gamegm_1_4.txt" "C:\Users\User\Desktop\GameGM\"
ren "C:\Users\User\Desktop\GameGM\gamegm_1_4.txt" "gamegm.txt"
goto end

:end
echo Děkuji za použití !
pause
exit

A výsledek bude vypadat nějak takto:

Výsledek

Samozřejmě si to můžete upravit pro jiné hry, např. pro Minecraft. Pro ten by to vypadalo přibližně nějak takto:

@echo off
title Menic verze pro Minecraft
:otazka
set /p A=Zadejte pozadovanou verzi Minecraftu [1.0/1.1/1.2/1.3/1.4/1.5] :
if %A%==1.0 goto 10
if %A%==1.1 goto 11
if %A%==1.2 goto 12
if %A%==1.3 goto 13
if %A%==1.4 goto 14
echo Nespravne zadana verze !
goto otazka

:10
del %appdata%\.minecraft\bin\minecraft.jar"
copy %appdata%\.minecraft\bin\minecraft_1_0.jar" %appdata%\.minecraft\bin\"
ren %appdata%\.minecraft\bin\minecraft_1_0.jar" "minecraft.jar"
goto end

:11
del %appdata%\.minecraft\bin\minecraft.jar"
copy %appdata%\.minecraft\bin\minecraft_1_1.jar" %appdata%\.minecraft\bin\"
ren %appdata%\.minecraft\bin\minecraft_1_1.jar" "minecraft.jar"
goto end

:12
del %appdata%\.minecraft\bin\minecraft.jar"
copy %appdata%\.minecraft\bin\minecraft_1_2.jar" %appdata%\.minecraft\bin\"
ren %appdata%\.minecraft\bin\minecraft_1_2.jar" "minecraft.jar"
goto end

:13
del %appdata%\.minecraft\bin\minecraft.jar"
copy %appdata%\.minecraft\bin\minecraft_1_3.jar" %appdata%\.minecraft\bin\"
ren %appdata%\.minecraft\bin\minecraft_1_3.jar" "minecraft.jar"
goto end

:14
del %appdata%\.minecraft\bin\minecraft.jar"
copy %appdata%\.minecraft\bin\minecraft_1_4.jar" %appdata%\.minecraft\bin\"
ren %appdata%\.minecraft\bin\minecraft_1_4.jar" "minecraft.jar"
goto end

:end
echo Děkuji za použití !
pause
exit

Pomocí tohoto se dá udělat celkem dobrý měnič verzí her, které fungují na tomto principu.

To by bylo na dnes všechno.

Příště si ukážeme jak rozbalit RAR soubor a jak spustit JAR pomocí Batch-e.


 

Stáhnout

Staženo 343x (1.4 kB)
Aplikace je včetně zdrojových kódů v jazyce Batch

 

Všechny články v sekci
Příkazový řádek a dávkové soubory
Článek pro vás napsal ...
Avatar
Jak se ti líbí článek?
7 hlasů
Autor sa venuje programovaniu v C#, Batch-i a učí sa programovať web.
Aktivity (1)

 

 

Komentáře

Avatar
steve2MC
Člen
Avatar
steve2MC:2.5.2013 16:00

Diky, presne tohle jsem potrebobal.
Uz se tesim na dalsi clanky. :)

 
Odpovědět
2.5.2013 16:00
Avatar
steve2MC
Člen
Avatar
Odpovídá na steve2MC
steve2MC:2.5.2013 16:40

Jo a ještě jsem se chtěl zeptat jestli by jsi mi mohl poslat nějakou verzi toho programu ktera by fungovala vsude(myslim tim ty cesty, zkoušel jsem to a porad mi to hlasi ze system nemuze najit cestu ).

 
Odpovědět
2.5.2013 16:40
Avatar
...
Redaktor
Avatar
Odpovídá na steve2MC
...:2.5.2013 21:36

zkus to jako s minecraftem pouzi appdata a dej si tam slozku s tim GameGM

Odpovědět
2.5.2013 21:36
Nehovor čo vieš, ale snaž sa vedieť, čo hovoríš...
Avatar
KlimiCZ
Člen
Avatar
KlimiCZ:3.5.2013 19:46

mam takový dotaz
Šlo by udělat ve .bat třeba nějakou hru ?
myslím například snake nebo něco na ten způsob
Jo a nešlo by nějak udělat aby bylo třeba jedno písmenko červený a druhý třeba zelený.
Šlo by udělat aby bylo jeden znak cely barevny?
myslím tím jako třeba tohle ██▓▓▒▒░░

Odpovědět
3.5.2013 19:46
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
...
Redaktor
Avatar
Odpovídá na KlimiCZ
...:8.5.2013 11:49

Snake-a asi nie ale dajú s arobiť napr. Quizy
Farba sa dá meniť pomocou príkazu color ale jeden samostatny znak nemoze byt inou farbou ako ostatne pretoze batch meni farbu vo vsetkom co ma vypisane.

Odpovědět
8.5.2013 11:49
Nehovor čo vieš, ale snaž sa vedieť, čo hovoríš...
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na ...
KlimiCZ:8.5.2013 16:06

Dik o bat vim toho dost ,ale zarazile mně jestli by t nějak šlo a dik za odpoved PS:mame skoro stejneho avatara :D

Odpovědět
8.5.2013 16:06
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
...
Redaktor
Avatar
Odpovídá na KlimiCZ
...:9.5.2013 15:27

Bohuzial, ako viem tak asi vsetky jazyky maju pri konzolovej aplikacii jednotvarne pozadie aj text.
Toho avatara som si vsimol tiez;)

Odpovědět
9.5.2013 15:27
Nehovor čo vieš, ale snaž sa vedieť, čo hovoríš...
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na ...
KlimiCZ:10.5.2013 16:05

U C# to je to jsem aji zkousel.

Odpovědět
10.5.2013 16:05
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Kit
Redaktor
Avatar
Odpovídá na KlimiCZ
Kit:10.5.2013 16:10

Barevné písmo se dělá přes ANSI. V DOSu to kdysi fungovalo, ale myslím si, že Windows to už neumí. MS odstranil víc fungujících věcí...

Odpovědět
10.5.2013 16:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Martin Bednář (xbedm01):22.5.2013 14:34

Nevíte někdo, jak použít funkci Find?

Odpovědět
22.5.2013 14:34
I bez motta se dá žít
Avatar
Зайчик
Člen
Avatar
Odpovědět
22.5.2013 14:36
Коммунизм для нашего будущего!
Avatar
Odpovědět
22.5.2013 14:39
I bez motta se dá žít
Avatar
Jan Juracka
Neregistrovaný
Avatar
Jan Juracka:8.6.2013 6:11

Ahoj chtel sem se te zeptat, jestli pomocí batch-e jde kompresovat
např.: slozka do novaslozka.jar
dík za odpoved

 
Odpovědět
8.6.2013 6:11
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jan Juracka
Kit:8.6.2013 10:12

Nedělá to batch, ale program jar, ktery z toho batche jde spustit. Pohodlnější je však program ant, který to současně kompiluje a postará se i o další závislosti.

Odpovědět
8.6.2013 10:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
anonym
Neregistrovaný
Avatar
Odpovídá na KlimiCZ
anonym:17.6.2013 10:59

snake by sel udelat ale bylo by to tolik radku kódu ze mas lepsi to naprogramoval v lepšim a prehlednejsim jazyku (podle tveho avatara asi v c sharpu)

 
Odpovědět
17.6.2013 10:59
Avatar
Neaktivní uživatel:22.6.2013 16:21

Dik

Odpovědět
22.6.2013 16:21
Neaktivní uživatelský účet
Avatar
michal
Redaktor
Avatar
michal:2.7.2013 15:13

konečně jsem naprogramoval program v batchi s hooodně funkcemi podívejte se :)
http://uloz.to/…-program-bat je volně šířitelný takže si s ním dělejte co chcete ale napište autora :)

 
Odpovědět
2.7.2013 15:13
Avatar
Tomáš Brůna
Redaktor
Avatar
Tomáš Brůna:25.2.2015 20:46

Ahoj jak mám udělat podmínku pokud nebude vyplnena jedna promena tak se program (třeba program.bat) zkopíruje do programů po spuštění?

Odpovědět
25.2.2015 20:46
Vi veri universum vivus vici
Avatar
Jakub Lepík
Člen
Avatar
Jakub Lepík:24.7.2015 17:38

Ahoj, mám malou otázku. :) Nejde nějak udělat aby byl příkazový řádek nad textem? :) (Že bych psal do řádku, který by byl nad textem.)

 
Odpovědět
24.7.2015 17:38
Avatar
Odpovídá na Jakub Lepík
Tomáš Pařízek:4.7.2016 10:31

echo.
echo.
echo.
echo Tady je ten text
rem LocateAt 1 1
set /p Text=Zadej neco:

 
Odpovědět
4.7.2016 10:31
Avatar
ZbyStr
Člen
Avatar
ZbyStr:31.8.2016 8:25

Ahoj, šlo by v batchi vytvořit novou složku? Díky za odpověď :)

Odpovědět
31.8.2016 8:25
Jen vyvolený dokáže na internetu najít pravdivou věc.
Avatar
ZbyStr
Člen
Avatar
ZbyStr:31.8.2016 8:26

Jo, už jsem to našel, díky :D

Odpovědět
31.8.2016 8:26
Jen vyvolený dokáže na internetu najít pravdivou věc.
Avatar
Václav Tobiška:19.12.2017 9:10

Tak tohle je hodně povedený, dávám palec nahoru. Dobré pro okouknutí kódu pro různé případy. Díky za zveřejnění ;)

Btw, Star Wars běží i na WIN 10, stačí si zapnout Telnet Clienta ve volitelných součástech Windows (příkaz je: telnet towel.blinken­lights.nl)

 
Odpovědět
19.12.2017 9:10
Avatar
LinaPark Csc
Člen
Avatar
LinaPark Csc:3.1.2018 17:54

Kedy bude pokračovanie?

 
Odpovědět
3.1.2018 17:54
Avatar
Milan Bydžovský:21.10.2019 9:23

tohle jsem potreobval pri neustale zmene hostu (2 testovaci prostredi). DIKY

 
Odpovědět
21.10.2019 9:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 25 zpráv z 25.