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

Ostatní jazyky Příkazový řádek a dávkové soubory 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

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 298x (1.4 kB)
Aplikace je včetně zdrojových kódů v jazyce Batch

 

  Aktivity (1)

Článek pro vás napsal ...
Avatar
Autor sa venuje programovaniu v C#, Batch-i a učí sa programovať web.

Jak se ti líbí článek?
Celkem (7 hlasů) :
4.428574.428574.428574.42857 4.42857


 



 

 

Komentáře
Zobrazit starší komentáře (12)

Avatar
Jan Juracka
Neregistrovaný
Avatar
Jan Juracka:

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
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jan Juracka
Kit:

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
anonym:

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
Odpovědět 22.6.2013 16:21
Neaktivní uživatelský účet
Avatar
michal
Redaktor
Avatar
michal:

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:

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
Lepší být šprt než blbec :)
Avatar
Jakub Lepík
Člen
Avatar
Jakub Lepík:

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:

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

 
Odpovědět 4. července 10:31
Avatar
ZbyStr
Člen
Avatar
ZbyStr:

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

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

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

Odpovědět 31. srpna 8:26
Jen vyvolený dokáže na internetu najít pravdivou věc.
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 10 zpráv z 22. Zobrazit vše