Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek II. Vyřešeno

Moderátor: Mods_senior

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 04 lis 2010 00:33

Hotové dávky - Smaž soubory starší než .. DOPSAT!

Zadání:
Měl bych dotaz ohledně příkazu v bat souboru. Nevíte někdo syntax pro "smaž * složky starší než (parametr = aktuální datum)" ?

Topic: http://www.pc-help.cz/viewtopic.php?p=212602#p212602


Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Reklama
Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 04 lis 2010 00:41

Vyhledávání na vaší oblíbené stránce pomocí Google DOPSAT!

Zatím pouze jeden docela užitečný odkaz http://www.maxiorel.cz/gooshorg-google- ... esky-navod
Naposledy upravil(a) Jan Pašek dne 14 lis 2010 23:05, celkem upraveno 1 x.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 04 lis 2010 00:50

Dávkový soubor SW udrzba PC vyžaduje revizi

topic: http://www.pc-help.cz/viewtopic.php?p=327429#p327429
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 04 lis 2010 01:05

Hotové dávky - Převod MP3 souborů pomocí lame.exe a dávky

Zadání:
Pls poraďte SW pro převod MP3 na MP3 s nižším vzorkovacím kmitočtem. (měla by se tak zmenšit velikost souboru MP3) Jinak poraďte samostatný SW s touto funkci. PLS česky Free.

Odpověď s řešením: http://www.pc-help.cz/viewtopic.php?p=73734#p73734

Myloš píše:Podle mne ti převzorkování stran velikosti nepomůže; pomůže ale samozřejmě změna datového toku (bitrate). K tomuto oučelu můžeš použít lame (z příkazové řádky; já si na to dycinky dělám dávkový soubor *.cmd). A pokud půjdeš s bitrate výrazně nízko, lame to převzorkuje ne kvůli velikosti, ale kvůli kvalitě.

1) Stáhni si poslední lame (asi radši finální 3.97 než 3.98a11)
2) soubor lame.exe zkopíruj do adresáře Windows (adresář je v proměnné PATH, lame.exe z něj tak můžeš volat odkudkoli bez nutnosti zapisovat k němu cestu)
3) Spusť příkazový řádek (cmd.exe) v adresáři, ve kterém máš onen soubor mp3, jemuž chceš snížit velikost.
4) zadej příkaz: lame --abr číslo puvodni.mp3 novy.mp3
číslem je míněn datový tok (bitrate); v názvech nepoužívej písmena s diakritikou, ani mezery (windows mají jinou kódovou stránku v GUI a jinou v příkazové řádce).
pokud chceš převést stereo na mono, vyděl zamýšlený bitrate na polovinu (protože např. 128kbps ve stereu = 64 vlevo a 64 vpravo) a přidej přepínač -m m – takto:
lame -m m --abr číslo puvodni.mp3 novy.mp3
Soubory starý.mp3 a nový.mp3 pojmenuj odlišně – jinak bude nový přepisovat ten starý, ze kterého tak nepůjde číst (je to trivialita, ale snadno unikne pozornosti).

DÁVKOVÉ ZPRACOVÁNÍ
Pokud chceš převést víc souborů, je to z příkazové řádky nepohodlné. Proto v příslušném adresáři zadej následující příkaz:
dir *.mp3 /b/on > jedem.cmd
Ten ti vytvoří dávkový soubor jedem.cmd (můžeš ho samozřejmě nazvat jakkoli jinak, jen ta přípona musí být cmd).
V tomto souboru, který upravíš třeba v poznámkovém bloku, najdeš seznam všech přítomných mp3 souborů. Stačí ke každému přidat text, který bys psal do příkazové řádky (viz bod 4).

NA OKRAJ ŘEČENO
Tímto způsobem dělám mp3 z wavů, jež extrahuji z cédéček pomocí vynikajícího Exact Audio Copy – a to včetně individuálních ID3 popisků. Nápovědu z lame.exe dostaneš pomocí parametru --longhelp:
lame --longhelp | more (je to dlouhé, more ti zastaví obrazovku)
lame --longhelp > napoveda.txt (přesměruje výstup místo na obrazovku do souboru – celou nápovědu pak najdeš v souboru napoveda.txt)



Nejprve ještě doplním Myloš(e) o kompletní údaje pokud by jste chtěli dávku nějak upravit
Lame a příkazový řádek (Anglicky): http://lame.cvs.sourceforge.net/viewvc/lame/lame/USAGE
Lame a příkazový řádek (překlad Google Translate): http://translate.google.cz/translate?hl ... me%2FUSAGE
Naposledy upravil(a) Jan Pašek dne 05 lis 2010 01:58, celkem upraveno 2 x.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 04 lis 2010 01:38

Hotové dávky - Detekce operačního systému Windows

Zadání:
Využil sem když sem potřeboval kopírovat do složky po spuštění a dávka měla být funkční v XP, Vista i W7. Vista a XP mají rozdílnou cestu k této složce.

Zdroj: http://malektips.com/xp_dos_0025.html
(přeloženo Google Translate): http://translate.google.cz/translate?hl ... _0025.html

Upravený překlad+dávka v CZ píše:Mnoho DOS(ovských) příkazů v různých verzích operačního systému Windows nese podobné znaky, ale mohou podporovat různé parametry. Plus, novější verze systému Windows mohou podpořit nové příkazy ale odmítat ty starší. Pokud tedy chcete napsat dávkový soubor, který může běžet na různých typech strojů, pak může výrazně prospět určit verzi Windows, na kterém je dávkový soubor spuštěn. Pak může vámi napsaný a spuštěný dávkový soubor provádět příkazy v závislosti na operačním systému.

Následující dávkový soubor pomůže určit, zda je počítač se systémem Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000 nebo Windows NT. Soubor dávky lze snadno změnit i pro detekci dalších verzí To může být snadno změněna na podporu dalších verzí systému Windows pokud je to nutné jen je třeba nastavit proměnnou prostředí založenou na verzi zjišťovaného systému Windows. Všimněte si, že pro tento dávkový soubor správně rozlišuje mezi novějšími verzemi systému Windows Server a uživatelskými verzemi systému Windows. Možná že dávka se vám zdá příliš složitá než jiné dávkové soubory podobného typu, které vidět jinde. Vše je vysvětleno v odůvodnění níže.

1) Otevřete okno Poznámkového bloku.

2) Zkopírujte následující text do poznámkového bloku:

Kód: Vybrat vše

@echo off

ver | find "2003" > nul
if %ERRORLEVEL% == 0 goto ver_2003

ver | find "XP" > nul
if %ERRORLEVEL% == 0 goto ver_xp

ver | find "2000" > nul
if %ERRORLEVEL% == 0 goto ver_2000

ver | find "NT" > nul
if %ERRORLEVEL% == 0 goto ver_nt

if not exist %SystemRoot%\system32\systeminfo.exe goto warnthenexit

systeminfo | find "OS Name" > %TEMP%\osname.txt
FOR /F "usebackq delims=: tokens=2" %%i IN (%TEMP%\osname.txt) DO set vers=%%i

echo %vers% | find "Windows 7" > nul
if %ERRORLEVEL% == 0 goto ver_7

echo %vers% | find "Windows Server 2008" > nul
if %ERRORLEVEL% == 0 goto ver_2008

echo %vers% | find "Windows Vista" > nul
if %ERRORLEVEL% == 0 goto ver_vista

goto warnthenexit

:ver_7
:Zde napište specifické příkazy pro spuštění ve Windows 7
echo Windows 7
goto exit

:ver_2008
:Zde napište specifické příkazy pro spuštění ve Windows Server 2008
echo Windows Server 2008
goto exit

:ver_vista
:Zde napište specifické příkazy pro spuštění ve Windows Vista
echo Windows Vista
goto exit

:ver_2003
:Zde napište specifické příkazy pro spuštění ve Windows Server 2003
echo Windows Server 2003
goto exit

:ver_xp
:Zde napište specifické příkazy pro spuštění ve Windows XP
echo Windows XP
goto exit

:ver_2000
:Zde napište specifické příkazy pro spuštění ve Windows 2000
echo Windows 2000
goto exit

:ver_nt
:Zde napište specifické příkazy pro spuštění ve Windows NT
echo Windows NT
goto exit

:warnthenexit
echo Operační systém na vašem PC nebyl určen!

:exit
pause

3) Uložte soubor jako %WINDIR%\whichvers.bat

4) Nyní, z příkazového řádku, zadejte: whichvers

To bude zobrazovat, kterou verzi systému Windows, kterou používáte.

POZNÁMKY:
1. 1. Důvod pro použití příkazu systeminfo.exe spíše než se spoléhat na příkaz "VER" je, že Windows Server 2008 "sdílí" čísla verzí s ostatními vydáními Windows ( viz Microsoft ). Nelze se tedy spoléhat na číslo verze kdy 6,0 značí Windows Vista nebo 6,1 značí Windows 7 ale nedokážete odlišit stroj z Windows Server 2008 nebo Windows Server 2008 R2.

2. 2. Vytvoření souboru %TEMP%\osname.txt je použito pouze proto, že jsem nemohl umístit výsledky systeminfo | najít "OS Name" přímo do příkazu "For / f" - to se nelíbí příkazúm v "rouře". Můžete najít jednodušší způsob, jak zvládnout detekovat informace z systeminfo.exe - pokud ano, prosím, přiložte komentář.

3. 3. Po užití proměnné prostředí %vers% která již dále není potřeba bych mohl tuto proměnnou odstranit to ale za cenu delšího dávkového souboru, ale v tomto případě to není nutné.

4. 4. Pokud se dávkovému souboru nepovede najít soubor SYSTEMINFO nebo vyhledat testovaný operační systém Windows je možné provést úpravu dávky kdy ve Windows7 64-bit se soubor SYSTEMINFO nachází ještě v podsložkách %SystemRoot%\system32


Pokud si chcete prohlédnout co všechno soubor SYSTEMINFO.EXE vypisuje jdi Win+R -> piš CMD -> stisk ENTER -> piš SYSTEMINFO.EXE -> stisk ENTER
Po upravě zmiňované dávky lze pomocí této dávky a integrovaných příkazů pro SYSTEMINFO.EXE zjišťovat instalované aktualizace a SP balíčky.
Naposledy upravil(a) Jan Pašek dne 14 lis 2010 23:01, celkem upraveno 1 x.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 05 lis 2010 03:03

Hotové dávky - CMD Help Generator

Dávka zapíše podrobný help příkazového řádku po souborech do složky CMD_Hlp

Využil sem pro přepis do článku

Kód: Vybrat vše

@echo off
Title CMD Help Generator
echo.
echo  Ve složce ze které jsem spuštěn vytvářím podsložku CMD_Hlp
md CMD_Hlp
echo  Zapisuji řádkové příkazy do souboru CMD_Hlp\Radkove.TXT
help > CMD_Hlp\Radkove.TXT
for /F %%I IN (CMD_Hlp\Radkove.TXT) DO if not "%%I"=="Chcete-li" (
echo.
echo Zapisuji nápovědu pro příkaz %%I do souboru CMD_Hlp\%%I.TXT
help %%I > CMD_Hlp\%%I.TXT
)
echo.
echo HOTOVO!
pause

Dávka ke stažení:
Nemáte oprávnění prohlížet přiložené soubory.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek II.

Příspěvekod Jan Pašek » 14 lis 2010 22:38

Hotové dávky - Očísluj řádky v souboru

Dávka očísluje jednotlivé již hotového souboru, který zvolíte a výstup zapíše do souboru s vámi zvoleným názvem a s příponou *.TXT

Využil sem při řádkových popisech dávek v první části článku.

Kód: Vybrat vše

@echo off
Title "Očisluj řadky v souboru - www.PC-Help.cz"
Color 1E

:ZadejSoubor
If not "%Key%"=="" cls
echo.
echo  Upozornění:
echo  Dávka používá jako odělovač textu v řádku pravou hranatou závorku "]"
echo  Pokud se tento znak vyskytuje na jednom řádku více jak 3* není schopna
echo  text zpracovat!
echo  --------------------------------------------------------------------------
echo  Zadejte cestu, název souboru a příponu souboru v němž mají být
echo  očíslovány řádky
If not "%Key%"=="" set Key=
echo.
set /P Key= Vaše volba:
If not exist "%Key%" Goto NoSoubor
echo.
echo  --------------------------------------------------------------------------
echo.
echo  Zpracovávám ... Čekejte
Find /V /N "¨" "%Key%">"%TMP%\TMP1.TXT"
For /F "skip=2 tokens=1-5* delims=]" %%A in (%TMP%\TMP1.TXT) do (
If "%%C"=="" echo %%A] %%B>>"%TMP%\TMP.TXT"
If not "%%C"=="" If "%%D"=="" echo %%A] %%B]%%C>>"%TMP%\TMP.TXT"
If not "%%C"=="" If not "%%D"=="" If "%%E"=="" echo %%A] %%B]%%C]%%D>>"%TMP%\TMP.TXT"
If not "%%C"=="" If not "%%D"=="" If not "%%E"=="" echo %%A] %%B]%%C]%%D]%%E>>"%TMP%\TMP.TXT"
)
cls
echo.
echo  Zadejte cestu a název souboru bez přípony souboru kam uložím výsledek
echo.
If not "%Key%"=="" set Key=
set /P Key= Vaše volba:
cls
echo.
echo  Výsledek bude uložen v souboru:
echo  %Key%.TXT
echo.
echo  Pokračovat [A]= Ano Jiná klávesa a pak Enter = Ne
echo.
set /P Key1= Vaše volba:
If /I "%Key1%"=="a" (
Copy /V "%TMP%\TMP.TXT" "%Key%.TXT"
If "%Errorlevel%"=="0" echo  Výsledek byl uložen %Key%.TXT
If Errorlevel 1 echo  Vyskytla se chyba!
) else (
cls
echo.
echo   Dávka ukončena bez akce!
)
DEL "%TMP%\TMP?.TXT"
ping -n 6 localhost>Nul
exit

:NoSoubor
cls
echo.
echo  Soubor s Vámi zadanými parametry nebyl nalezen!
echo.
echo  "%Key%"
echo.
Pause
Goto ZadejSoubor

Dávka ke stažení
Nemáte oprávnění prohlížet přiložené soubory.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 28 lis 2010 09:46

Hotové dávky - Jak upravit hlasitost zvuku ve Windows řádkovým příkazem po spuštění systému?
Zadání:
Nedávno jsem potřeboval vyřešit to, aby se po každém spuštění Windows automaticky vypnul zvuk. Samozřejmě to lze vyřešit pomocí ztišení (Mute) přímo ve Windows, ale má tu nevýhodu, že jakmile zvuk jednou povolíte a zapomenete ho před vypnutím PC opět zakázat, při příštím spuštění zůstane povolen. Jinými slovy si systém pamatuje své poslední nastavení před tím, než byl vypnut.

To nemusí být příjemné, pokud často chodíte do knihovny, na školení, pracujete v open space či se vyskytujete v jiných veřejných a relativně klidných prostředích, kde dokáží osolené reproduktory vašeho notebooku pořádně naštvat všechny v okolí.

Odkaz na článek:
Jak upravit hlasitost zvuku ve Windows řádkovým příkazem po spuštění systému?
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 01 pro 2010 22:29

Hotové dávky - Kontrola vámi zadané hodnoty času ve formátu hh:mm v rozsahu 00:00 až 23:59

Tuto dávku považujte spíše za stavební blok do vašich dávkových souborů. Pokud vaši dávku vybavujete kontrolou proti překlepu nebo následný příkaz musí mít zadán čas ve správném formátu aby nedocházelo k pádu dávky při chybném zadání. Už nic nemusíte vymýšlet jen stačí níže uvedenou dávku upravit pro vaše potřeby.

Kód: Vybrat vše

@echo Off
Title Konrola zadaného času hh:mm www.PC-Help.cz
:ZadejCas
cls
echo.
echo  Zadejte čas kdy spustit ve tvaru hh:mm v rozsahu 00:00 až 23:59
echo.
If not "%Cas%"=="" set Cas=
If not "%JdiNa%"=="" set JdiNa=
set /P Cas= Zadejte čas:

:CtrlFormatTime
if "%Cas%"=="" Goto SpatnyCas
set Hodiny=%Cas:~0,3%
set Minuty=%Cas:~-3%
If not "%Hodiny:~2,1%"==":" Goto SpatnyCas
If not "%Minuty:~0,1%"==":" Goto SpatnyCas
set Hodiny=%Cas:~0,2%
set Minuty=%Cas:~-2%
:CtrlHodin
if "%Hodiny:~0,1%"=="0" For /L %%I IN (0,1,9) DO If "%%I"=="%Hodiny:~1,1%" set Hodiny=%%I
If "%Hodiny%"=="0" goto CtrlMinut
set Key2=0
For /L %%I IN (0,1,23) DO If "%%I"=="%Hodiny%" set Key2=1
If "%Key2%"=="0" Goto SpatnyCas

:CtrlMinut
if "%Minuty:~0,1%"=="0" For /L %%I IN (0,1,9) DO If "%%I"=="%Minuty:~1,1%" set Minuty=%%I
If "%Minuty%"=="0" goto ZadejCas2
set Key2=0
For /L %%I IN (0,1,59) DO If "%%I"=="%Minuty%" set Key2=1
If "%Key2%"=="0" Goto SpatnyCas
If not "%Key2%"=="" set Key2=

:ZadejCas2
set Hodiny=
set Minuty=
cls
echo.
echo  byl zadán čas %cas%
echo.
pause
goto ZadejCas

:SpatnyCas
set Hodiny=
set Minuty=
cls
echo.
echo  Chyba v zadání času!
echo.
echo  Vámi zadaná hodnota %Cas%
echo.
pause
goto ZadejCas

Dávka ke stažení
Nemáte oprávnění prohlížet přiložené soubory.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 06 bře 2011 23:08

Příkaz ASSOC - Ukázková dávka "Otevři v programu" - první část
Dávka snad vyčerpávajícím způsobem ukazuje jak se dá využít příkazu ASSOC pokud je integrován do dávky. V podstatě je jedná o ucelený prográmek ovládaný klávesnicí se zabezpečením proti překlepu kdy se vypíše chybové hlášení.

Co ukázková dávka umí
  • Ukaž po stránkách asociace Přípona - Program (Přípona řazena abecedně)
  • Ukaž po stránkách asociace Program - Přípona (Program řazen abecedně)
  • Ukaž přípony bez asociace k programu pokud je uživatel neodstranil z registru
  • Hledej příponu souboru na internetu
  • Hledej program na internetu
  • Ukaž domovskou www stránku k této dávce a k příkazu ASSOC
  • Vytvoř novou asociaci k nainstalovanému programu [Stránkovací menu]
  • Zruš již vytvořenou asociaci [Obsahuje stránkovací menu]
  • Obnov nastavení asociací ze zálohy
  • Ukonči dávku bez akce a vymaž dočasné soubory, které dávka užívá pro svůj chod

Níže si můžete prohlédnout jak je dávka napsaná Text je doplněn o čísla řádků. (V podobě jak je text dávky uveden níže není dávka spustitelná. Využijte odkaz pro stažení nebo z počátku každého řádku odstraňte hranaté závorky, číslo řádku a mezeru za pravou závorkou Příklad: Nyní "[1] @Echo Off" => Spustitelné "@Echo Off")

Kód: Vybrat vše

[1] @Echo Off
[2] Title Otevři v programu www.PC-Help.cz
[3] Color 1E
[4] :StrtMnu
[5] cls
[6] echo.
[7] echo  Tzv. Asociace v PC určuje jaký typ souboru má být spuštěn v jakém programu
[8] echo  Příkaz ASSOC zobrazí nebo změní přidružení souboru podle přípony
[9] echo  --------------------------------------------------------------------------
[10] echo  Dávka, pokud má být plně funkční, by měla být spuštěna z účtu s právy
[11] echo  administrátora {Jako administrátor - op systémy Vista a W7}
[12] echo  --------------------------------------------------------------------------
[13] echo Vyberte možnost:
[14] echo  1 - Ukaž po stránkách asociace Přípona - Program (Přípona řazena abecedně)
[15] echo  2 - Ukaž po stránkách asociace Program - Přípona (Program řazen abecedně)
[16] echo  3 - Ukaž přípony bez asociace k programu pokud je uživatel neodstranil
[17] echo      z registru
[18] echo  4 - Hledej příponu souboru na internetu
[19] echo  5 - Hledej program na internetu
[20] echo  6 - Ukaž domovskou www stránku k této dávce a k příkazu ASSOC
[21] echo  7 - Vytvoř novou asociaci k nainstalovanému programu [Stránkovací menu
[22] echo  8 - Zruš již vytvořenou asociaci [Obsahuje stránkovací menu
[23] echo  9 - Obnov nastavení asociací ze zálohy
[24] echo  0 - Ukonči dávku bez akce a vymaž dočasné soubory, které dávka užívá pro
[25] echo      svůj chod
[26] echo  --------------------------------------------------------------------------
[27] echo  Stiskněte klávesu s číslem výběru po té stiskněte klávesu "Enter"
[28] echo.
[29] If not "%Key%"=="" set Key=
[30] If not "%JdiNa%"=="" set JdiNa=
[31] set /P Key= Váš výběr:
[32] If "%Key%"=="1" (
[33] cls
[34] echo.
[35] echo  SPOUŠTÍTE ZOBRAZENÍ PO STRÁNKÁCH POSUV "MEZERNÍKEM"
[36] echo  -------------------------------------------------------------------------
[37] pause
[38] Assoc | More
[39] pause
[40] goto StrtMnu
[41] )
[42] For /L %%I in (2,1,5) do If "%%I"=="%Key%" Goto Zpracovani
[43] If "%Key%"=="6" (
[44] Start "" "http://pc-help.cz/viewtopic.php?p=431514#p431514"
[45] Goto End
[46] )
[47] For /L %%I in (7,1,9) do If "%%I"=="%Key%" Goto Varovani
[48] If "%Key%"=="0" Goto EndEr
[49] set JdiNa=StrtMnu
[50] Goto ChybnaKlavesa
[51]
[52] :WiewProgrFile
[53] Assoc>"%TMP%\TMP1.TXT"
[54] For /F "tokens=1-2* delims==" %%A in (%TMP%\TMP1.TXT) do If not "%%B"=="" echo  %%B = %%A>>"%TMP%\TMP2.TXT"
[55] sort "%TMP%\TMP2.TXT" /O "%TMP%\TMP3.TXT"
[56] echo  Seznam asociací soubor - přípona registrovaných v tomto PC>"%TMP%\TMP.TXT"
[57] echo  ---------------------------------------------------------->>"%TMP%\TMP.TXT"
[58] type "%TMP%\TMP3.TXT">>"%TMP%\TMP.TXT"
[59] echo.>>"%TMP%\TMP.TXT"
[60] cls
[61] echo.
[62] echo  SPOUŠTÍTE ZOBRAZENÍ PO STRÁNKÁCH POSUV "MEZERNÍKEM"
[63] echo  --------------------------------------------------------------------------
[64] pause
[65] More "%TMP%\TMP.TXT"
[66] pause
[67] set JdiNa=StrtMnu
[68] goto DelTmp
[69]
[70] :WiewNoAsoc
[71] Assoc> "%TMP%\TMP1.TXT"
[72] echo  Seznam přípon souborů registrovaných v tomto PC, které nemají asociaci>"%TMP%\TMP.TXT"
[73] echo  ---------------------------------------------------------------------->>"%TMP%\TMP.TXT"
[74] For /F "tokens=1-2* delims==" %%A in (%TMP%\TMP1.TXT) do If "%%B"=="" echo  %%A>> "%TMP%\TMP.TXT"
[75] Find "." "%TMP%\TMP.TXT" > Nul
[76] If ErrorLevel 1 (
[77] Cls
[78] echo.
[79] echo  V tomto PC nebyly nalezeny žádné soubory, které by neměly přidělen program
[80] echo  pro spuštění [Nebyly nalezeny neasociované soubory
[81] echo.
[82] pause
[83] set JdiNa=StrtMnu
[84] goto DelTmp
[85] )
[86] echo.>> "%TMP%\TMP.TXT"
[87] cls
[88] echo.
[89] echo  SPOUŠTÍTE ZOBRAZENÍ PO STRÁNKÁCH POSUV "MEZERNÍKEM"
[90] echo  --------------------------------------------------------------------------
[91] pause
[92] cls
[93] More "%TMP%\TMP.TXT"
[94] pause
[95] set JdiNa=StrtMnu
[96] goto DelTmp
[97]
[98] :FindNetExtens
[99] Assoc | Find /N "=">"%TMP%\TMP1.TXT"
[100] echo.> "%TMP%\TMP.TXT"
[101] echo  Registrované typy souborů v tomto PC...Do pozice"výběr"zadejte číslo řádku>> "%TMP%\TMP.TXT"
[102] echo  přípony souboru o které chcete vyhledat podrobnosti na internetu>> "%TMP%\TMP.TXT"
[103] echo  STRÁNKOVACÍ MENU POSUV "MEZERNÍKEM">> "%TMP%\TMP.TXT"
[104] echo  -------------------------------------------------------------------------->> "%TMP%\TMP.TXT"
[105] For /F "tokens=1-2 delims=[]=" %%A in (%TMP%\TMP1.TXT) do echo [%%A] %%B>>"%TMP%\TMP.TXT"
[106] :FindNetExtens1
[107] cls
[108] more "%TMP%\TMP.TXT"
[109] If not "%Key%"=="" set Key=
[110] If not "%JdiNa%"=="" set JdiNa=
[111] set /P Key= Váš výběr:
[112] For /F "tokens=1-2* delims=[]=" %%A in (%TMP%\TMP.TXT) do If "%%A"=="%Key%" (
[113] Start "" "http://www.goosh.org/#Extension file %%B"
[114] set Key=%%B
[115] set JdiNa=StrtMnu
[116] goto DelTmp
[117] )
[118] set JdiNa=FindNetExtens1
[119] Goto ChybnaKlavesa
[120]
[121] :FindNet
[122] Start "" "http://www.goosh.org/#%Key%"
[123] set JdiNa=StrtMnu
[124] goto DelTmp
[125]
[126] :NewAsoc
[127] cls
[128] echo.
[129] echo  Pro program %Key%
[130] set /P Key1=  Zadejte typ souboru a stiskněte klávesu Enter:
[131] echo.
[132] echo ---------------------------------------------------------------------------
[133] If not "%Key1~0,1%"=="." set Key1=.%Key1%
[134] echo Zřízena asociace:
[135] echo.
[136] ASSOC %Key1%=%Key%
[137] echo.
[138] set JdiNa=KamDal
[139] goto DelTmp
[140]
[141] :ClearAsoc
[142] Assoc | Find /N "=" > "%TMP%\TMP1.TXT"
[143] echo.> "%TMP%\TMP.TXT"
[144] echo  Asociace typ souboru - program ... Do pozice "výběr" zadejte číslo řádku>> "%TMP%\TMP.TXT"
[145] echo  asociace kterou chcete zrušit>> "%TMP%\TMP.TXT"
[146] echo  STRÁNKOVACÍ MENU POSUV "MEZERNÍKEM">> "%TMP%\TMP.TXT"
[147] echo  -------------------------------------------------------------------------->> "%TMP%\TMP.TXT"
[148] For /F "tokens=1-2* delims==" %%A in (%TMP%\TMP1.TXT) do If not "%%B"=="" echo %%A=%%B>> "%TMP%\TMP.TXT"
[149] echo. >> "%TMP%\TMP.TXT"
[150]
[151] :ClearAsoc1
[152] cls
[153] more "%TMP%\TMP.TXT"
[154] If not "%Key%"=="" set Key=
[155] If not "%JdiNa%"=="" set JdiNa=
[156] set /P Key= Váš výběr:
[157] For /F "skip=1 tokens=1-3* delims=[]=" %%A in (%TMP%\TMP.TXT) do If "%%A"=="%Key%" (
[158] cls
[159] echo.
[160] echo Odstraněna asociace pro typ souboru:
[161] echo.
[162] echo  %%B
[163] ASSOC %%B=
[164] echo.
[165] set JdiNa=KamDal
[166] goto DelTmp
[167] )
[168] set JdiNa=ClearAsoc1
[169] Goto ChybnaKlavesa
[170]
[171] :Repair
[172] set JdiNa=
[173] If not exist "Zaloha_Asoc.TXT" goto EndEr
[174] For /F "tokens=1-2* delims=[]" %%A in (Zaloha_Asoc.TXT) do (
[175] If "%%A"=="0" If not "%%B"=="%PROCESSOR_IDENTIFIER% %COMPUTRTERNAME% %HomeDrive% %USERNAME%" goto EndEr
[176] Assoc %%B
[177] )
[178] pause
[179] Goto KamDal
[180]
[181] rem ---------------------------------------------------------------------------
[182] rem Společné části dávky
[183]
[184] :InstPrograms
[185] Assoc>"%TMP%\Asoc.TXT"
[186] For /F "tokens=2 delims==" %%A in (%TMP%\Asoc.TXT) do If not "%%A"=="" echo %%A=>> "%TMP%\TMP1.TXT"
[187] sort /R "%TMP%\TMP1.TXT" /O "%TMP%\TMP2.TXT"
[188] Find /N "=" "%TMP%\TMP2.TXT"> "%TMP%\TMP3.TXT"
[189] For /F "skip=1 tokens=1-2* delims=[]" %%A in (%TMP%\TMP3.TXT) do If not "%%B"=="" If not "%%B"==" " (
[190] set Key=%%B
[191] set ZdrojRadek=%%A
[192] )
[193] echo %Key%> "%TMP%\TMP4.TXT"
[194] set /a ZdrojRadek=ZdrojRadek - 1
[195]
[196] :InstPrograms1
[197] For /F "tokens=1-2* delims=[]=" %%A in (%TMP%\TMP3.TXT) do If "%%A"=="%ZdrojRadek%" (
[198] set Key1=%%B
[199] Goto InstPrograms2
[200] )
[201] :InstPrograms2
[202] if not "%Key%"=="%Key1%" (
[203] echo %Key1%=>> "%TMP%\TMP4.TXT"
[204] set key=%Key1%
[205] cls
[206] echo  Probíhá zpracování výstupu příkazu ASSOC a jeho následná úprava ...
[207] echo  ... operace může chvíli trvat!
[208] echo  %ZdrojRadek%
[209] )
[210] set /a ZdrojRadek=ZdrojRadek-1
[211] If %ZdrojRadek% LSS 1 (
[212] Find /N "=" "%TMP%\TMP4.TXT"> "%TMP%\TMP5.TXT"
[213] cls
[214] echo  Probíhá zpracování výstupu příkazu ASSOC a jeho následná úprava ...
[215] echo  ... operace může chvíli trvat!
[216] echo  %ZdrojRadek%
[217] Goto InstPrograms3
[218] )
[219] goto InstPrograms1
[220]
[221] :InstPrograms3
[222] echo.> "%TMP%\TMP.TXT"
[223] echo  Seznam nainstalovaných programů ... Do pozice "výběr" zadejte číslo řádku>> "%TMP%\TMP.TXT"
[224] If "%DiNa%"=="NewAsoc" echo  s programem ke kterému chcete vytvořit novou asociaci>> "%TMP%\TMP.TXT"
[225] If "%DiNa%"=="FindNet" echo  s programem ke kterému chcete vyhledat podrobnosti na internetu.>> "%TMP%\TMP.TXT"
[226] echo  STRÁNKOVACÍ MENU POSUV "MEZERNÍKEM">> "%TMP%\TMP.TXT"
[227] echo  -------------------------------------------------------------------------->> "%TMP%\TMP.TXT"
[228] For /F "skip=1 tokens=1-2* delims=[]=" %%A in (%TMP%\TMP5.TXT) do If not "%%B"=="" echo  [%%A] %%B>> "%TMP%\TMP.TXT"
[229] echo. >> "%TMP%\TMP.TXT"
[230]
[231] :InstProgramMnu
[232] cls
[233] More "%TMP%\TMP.TXT"
[234] If not "%Key%"=="" set Key=
[235] If not "%JdiNa%"=="" set JdiNa=
[236] set /P Key= Váš výběr:
[237] For /F "skip=1 tokens=1-2* delims=[]=" %%A in (%TMP%\TMP5.TXT) do If "%%A"=="%Key%" (
[238] set Key=%%B
[239] If "%DiNa%"=="NewAsoc" goto NewAsoc
[240] If "%DiNa%"=="FindNet" goto FindNet
[241] )
[242] set JdiNa=InstProgramMnu
[243] Goto ChybnaKlavesa
[244]
[245] :Zpracovani
[246] cls
[247] echo.
[248] If not exist "Zaloha_Asoc.TXT" For /L %%I in (7,1,8) do If "%%I"=="%Key%" (
[249] echo  Do složky %CD%
[250] echo  odkud byla spuštěna dávka vytvářím záložní soubor "Zaloha_Asoc.TXT".
[251] echo.
[252] echo  Prosím nemažte tento soubor dokud si nebudete jisti že nechcete obnovit
[253] echo  původní stav počítače před prvním spuštěním úprav pomocí této dávky.
[254] echo.
[255] echo  Zapisuji ...
[256] Assoc | Find /N "=">"%TMP%\TMP.TXT"
[257] echo [0]%PROCESSOR_IDENTIFIER% %COMPUTRTERNAME% %HomeDrive% %USERNAME%>Zaloha_Asoc.TXT"
[258] For /F "tokens=1-3* delims=[]=" %%a in (%TMP%\TMP.TXT) do If not "%%c"=="" echo [%%a]%%b=%%c>>Zaloha_Asoc.TXT"
[259] If exist "Zaloha_Asoc.TXT" echo  Záloha byla zapsána. Ověřena existence souboru "Zaloha_Asoc.TXT"
[260] If not exist "Zaloha_Asoc.TXT" Goto EndEr
[261] echo.
[262] Pause
[263] cls
[264] echo.
[265] )
[266] echo  Probíhá zpracování výstupu příkazu ASSOC a jeho následná úprava ...
[267] echo  ... operace může chvíli trvat!
[268] echo.
[269] If "%Key%"=="2" (
[270] set JdiNa=WiewProgrFile
[271] Goto DelTmp
[272] )
[273]
[274] If "%Key%"=="3" (
[275] set JdiNa=WiewNoAsoc
[276] Goto DelTmp
[277] )
[278] If "%Key%"=="4" (
[279] set JdiNa=FindNetExtens
[280] Goto DelTmp
[281] )
[282] If "%Key%"=="5" (
[283] set JdiNa=InstPrograms
[284] set DiNa=FindNet
[285] Goto DelTmp
[286] )
[287] If "%Key%"=="7" (
[288] set JdiNa=InstPrograms
[289] set DiNa=NewAsoc
[290] Goto DelTmp
[291] )
[292] If "%Key%"=="8" (
[293] set JdiNa=ClearAsoc
[294] Goto DelTmp
[295] )
[296] set JdiNa=Repair
[297] Goto DelTmp
[298]
[299] :Varovani
[300] cls
[301] echo.
[302] echo  VAROVÁNÍ!
[303] echo.
[304] echo  OPERACE ZASAHUJE DO NASTAVENÍ POČÍTAČE! CHCETE POKRAČOVAT?
[305] echo.
[306] echo  Ano = "A" Jiná klávesa = "Ne" pak stiskněte "Enter"
[307] echo.
[308] set /P Key1= Váš výběr:
[309] If /I "%Key1%"=="a" Goto Zpracovani
[310]
[311] :KamDal
[312] echo.
[313] echo  -------------------------------------------------------------------------
[314] echo.
[315] echo  Kam dále?
[316] echo    1 - Vrátit zpět hlavní menu
[317] echo    2 - Ukončit dávku
[318] echo    3 - Pokud byla prováděna změna asociací restartovat PC a dokončit zápis
[319] echo.
[320] If not "%Key%"=="" set Key=
[321] If not "%Key1%"=="" set Key1=
[322] If not "%JdiNa%"=="" set JdiNa=
[323] set /P Key= Váš výběr:
[324] If "%Key%"=="1" goto StrtMnu
[325] If "%Key%"=="2" goto End
[326] If "%Key%"=="3" (
[327] Start "" Shutdown -r -t 30 -c "Probíhá restart vyvolaný dávkou Otevri_v_programu."
[328] goto DelTmp
[329] )
[330] set JdiNa=KamDal
[331]
[332] :ChybnaKlavesa
[333] cls
[334] echo.
[335] echo  Byla stisknuta klávesa mimo povolený výběr!
[336] echo.
[337] echo  Vámi stisknutá klávesa "%Key%"
[338] echo.
[339] pause
[340] Goto %JdiNa%
[341]
[342] :EndEr
[343] cls
[344] echo.
[345] echo  Dávka byla pro chybu nebo na vaše přání ukončena.
[346] Goto DelTmp
[347]
[348] :End
[349] cls
[350] echo.
[351] echo  Operace byla dokončena. Dávka byla zastavena
[352]
[353] :DelTmp
[354] echo.
[355] set Key=0
[356] If exist %TMP%\Asoc.txt set Key=1
[357] If exist "%TMP%\TMP?.TXT" set Key=1
[358] If "%Key%"=="1" echo  Mažu dočasné soubory.
[359] If exist %TMP%\Asoc.txt del %TMP%\Asoc.txt
[360] If exist "%TMP%\TMP?.TXT" del %TMP%\TMP?.TXT
[361] If not "%JdiNa%"=="" Goto %JdiNa%
[362] ping -n 6 localhost>Nul
[363] exit
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 06 bře 2011 23:17

Příkaz ASSOC - Ukázková dávka "Otevři v programu" - Druhá část
Řádkový popis příkazů v dávce (čísla řádků korespondují s čísly řádků v okně s příkazy)

Kód: Vybrat vše

[1] Vypni zobrazování příkazů (echo Off) a nezobrazuj ani zadání tohoto příkazu (@)
[2] Nastav titulek okna na "Otevři v programu www.PC-Help.cz"
[3] Nastav barvu podkladu okna na modrou a barvu písma na žlutou
[4] Počátek části dávky "StrtMnu" (Start Menu)
[5] Vymaž obrazovku (Příkaz není nutný při prvním spuštění ale uplatní se po návratu z chybového hlášení pokud bychom v našem případě chtěli být precizní mohli bychom , což v tomto případě není, Před příkaz postavit podmínku která by zkoumala zdali byl již proveden výběr v hlavním menu ... Hlavní menu bez výběru  = není třeba mazat obrazovku)
[6] Napiš na obrazovku prázdný řádek
[7] Napiš na obrazovku "  Tzv. Asociace v PC určuje jaký typ souboru má být spuštěn v jakém programu"
[8] Napiš na obrazovku "  Příkaz ASSOC zobrazí nebo změní přidružení souboru podle přípony"
[9] Napiš na obrazovku "  --------------------------------------------------------------------------"
[10] Napiš na obrazovku "  Dávka, pokud má být plně funkční, by měla být spuštěna z účtu s právy"
[11] Napiš na obrazovku "  administrátora {Jako administrátor - op systémy Vista a W7)"
[12] Napiš na obrazovku "  --------------------------------------------------------------------------"
[13] Napiš na obrazovku " Vyberte možnost:"
[14] Napiš na obrazovku "  1 - Ukaž po stránkách asociace Přípona - Program (Přípona řazena abecedně)"
[15] Napiš na obrazovku "  2 - Ukaž po stránkách asociace Program - Přípona (Program řazen abecedně)"
[16] Napiš na obrazovku "  3 - Ukaž přípony bez asociace k programu pokud je uživatel neodstranil"
[17] Napiš na obrazovku "      z registru"
[18] Napiš na obrazovku "  4 - Hledej příponu souboru na internetu"
[19] Napiš na obrazovku "  5 - Hledej program na internetu"
[20] Napiš na obrazovku "  6 - Ukaž domovskou www stránku k této dávce a k příkazu ASSOC"
[21] Napiš na obrazovku "  7 - Vytvoř novou asociaci k nainstalovanému programu [Stránkovací menu]"
[22] Napiš na obrazovku "  8 - Zruš již vytvořenou asociaci [Obsahuje stránkovací menu]"
[23] Napiš na obrazovku "  9 - Obnov nastavení asociací ze zálohy"
[24] Napiš na obrazovku "  0 - Ukonči dávku bez akce a vymaž dočasné soubory, které dávka užívá pro"
[25] Napiš na obrazovku "      svůj chod"
[26] Napiš na obrazovku "  --------------------------------------------------------------------------"
[27] Napiš na obrazovku "  Stiskněte klávesu s číslem výběru po té stiskněte klávesu "Enter""
[28] Napiš na obrazovku prázdný řádek
[29] Pokud není proměnná "Key" prázdná (nedefinovaná) zruš proměnnou "Key""
[30] Pokud není proměnná "JdiNa" prázdná (nedefinovaná) zruš proměnnou "JdiNa"
[31] Zapiš hodnotu zadanou z klávesnice za titulek "Váš výběr" po stisku klávesy "Enter" do proměnné "Key"
[32] Pokud se hodnota proměnné "Key" rovná jedné proveď postupně příkazy uzavřené mezi kulaté závorky - Počátek příkazů v kulaté závorce
[33] Vymaž obrazovku
[34] Napiš na obrazovku prázdný řádek
[35] Napiš na obrazovku  "  SPOUŠTÍTE ZOBRAZENÍ PO STRÁNKÁCH POSUV "MEZERNÍKEM""
[36] Napiš na obrazovku "  -------------------------------------------------------------------------"
[37] Zastav chod dávky a vyčkej na stisk libovolné klávesy
[38] Zastavuj po obrazovkách výstup příkazu ASSOC
[39] Zastav chod dávky a vyčkej na stisk libovolné klávesy
[40] Přejdi do části dávky " StrtMnu
[41] Konec příkazů umístěných do kulatých závorek
[42] Vytvoř smyčku s vnitřní proměnnou "I" a počítej po jedné od dvou do pěti Pokud se proměnná smyčky "I" rovná proměnné "Key" Přejdi do části dávky "Zpracovani"
[43] Pokud se hodnota proměnné "Key" rovná šesti proveď postupně příkazy uzavřené mezi kulaté závorky - Počátek příkazů v kulaté závorce
[44] Otevři internetovou adresu "http://pc-help.cz/viewtopic.php?p=431514#p431514"
[45] Přejdi do části dávky "End"
[46] Konec příkazů umístěných do kulatých závorek
[47] Vytvoř smyčku s vnitřní proměnnou "I" a počítej po jedné od sedmi do devíti Pokud se proměnná smyčky "I" rovná proměnné "Key" Přejdi do části dávky "Varovani"
[48] Pokud se proměnná "Key" rovná nule Přejdi do části dávky "EndEr"
[49] Nastav hodnotu proměnné "JdiNa" na hodnotu "StrtMnu"
[50] Přejdi do části dávky "ChybnaKlavesa"
[51] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "StrtMnu" 
[52] Počátek části dávky "WiewProgrFile"
[53] Zapiš výstup příkazu ASSOC od prvního řádku souboru "TMP.TXT" který bude umístěn viz hodnota systémové proměnné "TMP"
[54] Vytvoř smyčku, která bude po řádku číst ze souboru TMP1.TXT umístěného viz. hodnota systémové proměnné "TMP" Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu je znak "=" První část textu čteného řádku bude zapsána do proměnné smyčky"A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B". Pokud není proměnná smyčky "B" prázdná (pokud je ve zdrojovém textu ve čteném řádku za "=" nějaký výraz)Zapiš na další řádek v souboru TMP2.TXT, který ke umístěn viz. hodnota systémové proměnné "TMP", Hodnota proměnné  "B" smyčky "For" = Hodnota proměnné  "A" smyčky "For"
[55] Setřiď dle abecedy soubor TMP2.TXT umístěný "viz hodnota systémové proměnné TMP" Setříděný výstup umísti do souboru TMP3.TXT ten umísti "viz hodnota systémové proměnné TMP"
[56] Napiš na první řádek souboru "TMP.TXT", který je umístěný viz hodnota systémové proměnné "TMP" text "  Seznam asociací soubor - přípona registrovaných v tomto PC"
[57] Napiš na další řádek souboru "TMP.TXT", který je umístěný viz hodnota systémové proměnné "TMP" text "  ----------------------------------------------------------"
[58] Přečti soubor "TMP3.TXT", který je umístěný viz. hodnota systémové proměnné "TMP" a zapiš jej od dalšího řádku do souboru "TMP.TXT", který je umístěný viz.hodnota systémové proměnné "TMP"
[59] Zapiš do dalšího řádku souboru "TMP.TXT", který je umístěný viz.hodnota systémové proměnné "TMP", prázdný řádek.
[60] Vymaž obrazovku
[61] Napiš na obrazovku prázdný řádek
[62] Napiš na obrazovku  "  SPOUŠTÍTE ZOBRAZENÍ PO STRÁNKÁCH POSUV "MEZERNÍKEM""
[63] Napiš na obrazovku "  --------------------------------------------------------------------------"
[64] Zastav chod dávky a vyčkej na stisk libovolné klávesy
[65] Přečti a vypiš po obrazovkách soubor "TMP.TXT" umístěný v "viz hodnota systémové proměnné "TMP""
[66] Zastav chod dávky a vyčkej na stisk libovolné klávesy
[67] Nastav hodnotu proměnné "JdiNa" na hodnotu "StrtMnu"
[68] Přejdi do části dávky "DelTmp"
[69] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "WiewProgrFile" 
[70] Počátek části dávky "WiewNoAsoc"
[71] Zapiš výstup příkazu ASSOC od prvního řádku do souboru "TMP.TXT" umístěného viz. hodnota systémové proměnné "TMP"
[72] Zapiš na první řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" "  Seznam přípon souborů registrovaných v tomto PC, které nemají asociaci"
[73] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" "  ----------------------------------------------------------------------"
[74] Vytvoř smyčku, která bude po řádku číst ze souboru TMP1.TXT umístěného viz. hodnota systémové proměnné "TMP" Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu je znak "=" První část textu čteného řádku bude zapsána do proměnné smyčky"A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B". Pokud není proměnná smyčky "B" prázdná (pokud je ve zdrojovém textu ve čteném řádku za "=" nějaký výraz)Zapiš na další řádek v souboru TMP.TXT, který je umístěn viz. hodnota systémové proměnné "TMP", Hodnotu proměnné smyčky "A"
[75] Vyhledej v souboru TMP.TXT umístěném viz hodnota systémové proměnné "TMP" znak "." a výsledek nezobrazuj. (pokud by v souboru nebyla nalezena žádná tečka v PC nejsou soubory bez asociace)
[76] Pokud je návratová hodnota z příkazu výše rovna nebo větší jedné proveď postupně příkazy uzavřené v kulatých závorkách - Počátek příkazů uzavřených do kulatých závorek
[77] Vymaž obrazovku
[78] Napiš na obrazovku prázdný řádek
[79] Napiš na obrazovku  "  V tomto PC nebyly nalezeny žádné soubory, které by neměly přidělen program"
[80] Napiš na obrazovku  "  pro spuštění [Nebyly nalezeny neasociované soubory]"
[81] Napiš na obrazovku prázdný řádek
[82] Zastav chod dávky a vyčkej na stisk libovolné klávesy
[83] Nastav hodnotu proměnné "JdiNa" na hodnotu "StrtMnu"
[84] Přejdi do části dávky "DelTmp"
[85] Konec příkazů umístěných do kulatých závorek
[86] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" prázdný řádek
[87] Vymaž obrazovku
[88] Napiš na obrazovku prázdný řádek
[89] Napiš na obrazovku  "  SPOUŠTÍTE ZOBRAZENÍ PO STRÁNKÁCH POSUV "MEZERNÍKEM"
[90] Napiš na obrazovku "  --------------------------------------------------------------------------"
[91] Zastav chod dávky a vyčkej na stisk libovolné klávesy
[92] Vymaž obrazovku
[93] Přečti a vypiš po stránkách soubor "TMP.TXT" umístěný v "viz hodnota systémové proměnné "TMP""
[94] Zastav chod dávky a vyčkej na stisk libovolné klávesy
[95] Nastav hodnotu proměnné "JdiNa" na hodnotu "StrtMnu"
[96] Přejdi do části dávky "DelTmp"
[97] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "WiewNoAsoc" 
[98] Počátek části dávky "FindNetExtens"
[99] Výstup příkazu ASSOC poskytni jako vstup příkazu "FIND". Vyhledej a očísluj všechny řádky, které obsahují znak "=" (očíslování všech řádků v souboru) Výsledek vyhledání zapiš na další řádek do souboru "TMP1.TXT" umístěného viz. hodnota systémové proměnné "TMP"
[100] Zapiš na první řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" prázdný řádek
[101] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" text "  Registrované typy souborů v tomto PC...Do pozice"výběr"zadejte číslo řádku"
[102] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" text "  přípony souboru o které chcete vyhledat podrobnosti na internetu"
[103] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" text "  STRÁNKOVACÍ MENU POSUV "MEZERNÍKEM""
[104] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" text "  --------------------------------------------------------------------------"
[105] Vytvoř smyčku, která bude po řádku číst ze souboru TMP1.TXT umístěného viz. hodnota systémové proměnné "TMP" Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu jsou znaky "[]=", které budou při čtení z textu vynechány První část textu čteného řádku bude zapsána do proměnné smyčky "A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B". Zapiš na další řádek v souboru TMP.TXT, který je umístěn viz. hodnota systémové proměnné "TMP", Znak "[" + Hodnotu proměnné smyčky "A" + Znak "]" + mezeru + Hodnotu proměnné smyčky "B"
[106] Počátek části dávky "FindNetExtens1"
[107] Vymaž obrazovku
[108] Přečti a vypiš po stránkách soubor "TMP.TXT" umístěný v "viz hodnota systémové proměnné "TMP""
[109] Pokud není proměnná "Key" prázdná (nedefinovaná) zruš proměnnou "Key"
[110] Pokud není proměnná "JdiNa" prázdná (nedefinovaná) zruš proměnnou "JdiNa"
[111] Zapiš hodnotu zadanou z klávesnice za titulek "Váš výběr" po stisku klávesy "Enter" do proměnné "Key"
[112] Vytvoř smyčku za pomoci příkazu "FOR", která bude po řádku číst ze souboru TMP.TXT umístěného viz. hodnota systémové proměnné "TMP" Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu jsou znaky "[]=", které budou při čtení z textu vynechány První část textu čteného řádku bude zapsána do proměnné smyčky "A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B". Pokud se hodnota proměnné smyčky "A" rovná hodnotě proměnné "Key" Vykonej postupně příkazy uzavřené v kulatých závorkách - Počátek příkazů v kulatých závorkách
[113] Spusť vyhledávání Google prostřednictvím stránky Goosh.org Vyhledávaný výraz je v tomto případě složen z textu "Extension file " + Hodnota proměnné smyčky "B"
[114] Nastav hodnotu proměnné "Key" na hodnotu předanou do těla smyčky "For" tokenem jemuž ve smyčce "For" přidělena hodnota proměnné smyčky "B". Přičemž platí že "set Key=%%B" není totéž jako "set Key=%%b" smyčka "For" rozlišuje malá a velká písmena v označení proměnných smyčky!
[115] Nastav hodnotu proměnné "JdiNa" na hodnotu "StrtMnu"
[116] Přejdi do části dávky "DelTmp"
[117] Konec příkazů umístěných do kulatých závorek
[118] Nastav hodnotu proměnné "JdiNa" na hodnotu "FindNetExtens1"
[119] Přejdi do části dávky "ChybnaKlavesa"
[120] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "FindNetExtens"
[121] Počátek části dávky "FindNet"
[122] Spusť vyhledávání Google prostřednictvím stránky Goosh.org Vyhledávaný výraz je v tomto případě hodnota proměnné "Key"
[123] Nastav hodnotu proměnné "JdiNa" na hodnotu "StrtMnu"
[124] Přejdi do části dávky "DelTmp"
[125] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "FindNetExtens1"
[126] Počátek části dávky "NewAsoc"
[127] Vymaž obrazovku
[128] Napiš na obrazovku prázdný řádek
[129] Napiš na obrazovku  "  Pro program + hodnota proměnné "Key"
[130] Zapiš hodnotu zadanou z klávesnice za titulek "Zadejte typ souboru a stiskněte klávesu Enter:" po stisku klávesy "Enter" do proměnné "Key1"
[131] Napiš na obrazovku prázdný řádek
[132] Napiš na obrazovku  " ---------------------------------------------------------------------------"
[133] Pokud se nerovná první znak zleva uložený v proměnné "Key1" znaku "." Nastav hodnotu proměnné "Key1" na "." + Původní hodnota proměnné "Key1"
[134] Napiš na obrazovku  " Zřízena asociace:"
[135] Napiš na obrazovku prázdný řádek
[136] Nastav novou asociaci Hodnota proměnné "Key1" = Hodnota proměnné "Key"
[137] Napiš na obrazovku prázdný řádek
[138] Nastav hodnotu proměnné "JdiNa" na vyraz "KamDal"
[139] Přejdi do části dávky "DelTmp"
[140] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "NewAsoc"
[141] Počátek části dávky "ClearAsoc"
[142] Výstup příkazu ASSOC poskytni jako vstup příkazu "FIND". Vyhledej a očísluj všechny řádky, které obsahují znak "=" (očíslování všech řádků v souboru) Výsledek vyhledání zapiš na další řádek do souboru "TMP1.TXT" umístěného viz. hodnota systémové proměnné "TMP"
[143] Zapiš na první řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" prázdný řádek
[144] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" text "  Asociace typ souboru - program ... Do pozice "výběr" zadejte číslo řádku"
[145] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" text "  asociace, kterou chcete zrušit"
[146] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" text "  STRÁNKOVACÍ MENU POSUV "MEZERNÍKEM""
[147] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" text "  --------------------------------------------------------------------------"
[148] Vytvoř smyčku, která bude po řádku číst ze souboru TMP1.TXT umístěného viz. hodnota systémové proměnné "TMP" Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu je znak "=" První část textu čteného řádku bude zapsána do proměnné smyčky"A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B". Pokud není proměnná smyčky "B" prázdná (pokud je ve zdrojovém textu ve čteném řádku za "=" nějaký výraz) Zapiš na další řádek v souboru TMP.TXT, který ke umístěn viz. hodnota systémové proměnné "TMP", Hodnota proměnné smyčky "A" = Hodnota proměnné smyčky"B"
[149] Zapiš na další řádek souboru "TMP.TXT" umístěného viz.hodnota systémové proměnné "TMP" prázdný řádek
[150] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "ClearAsoc"
[151] Počátek části dávky "ClearAsoc1"
[152] Vymaž obrazovku
[153] Přečti a vypiš po stránkách soubor "TMP.TXT" umístěný v "viz hodnota systémové proměnné "TMP""
[154] Pokud není proměnná "Key" prázdná (nedefinovaná) zruš proměnnou "Key"
[155] Pokud není proměnná "JdiNa" prázdná (nedefinovaná) zruš proměnnou "JdiNa"
[156] Zapiš hodnotu zadanou z klávesnice za titulek "Váš výběr" po stisku klávesy "Enter" do proměnné "Key"
[157] Vytvoř smyčku za pomoci příkazu "FOR", která bude po řádku číst ze souboru TMP.TXT umístěného viz. hodnota systémové proměnné "TMP" Čtený řádek bude při čtení rozdělen na 3 části "tokens" přičemž oddělovačem textu jsou znaky "[]=", které budou při čtení z textu vynechány První část textu čteného řádku bude zapsána do proměnné smyčky "A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B" Třetí část textu čteného řádku bude zapsána do proměnné smyčky "C". Pokud se hodnota proměnné smyčky "A" rovná hodnotě proměnné "Key" Vykonej postupně příkazy uzavřené v kulatých závorkách - Počátek příkazů v kulatých závorkách
[158] Vymaž obrazovku
[159] Napiš na obrazovku prázdný řádek
[160] Napiš na obrazovku  " Odstraněna asociace pro typ souboru:"
[161] Napiš na obrazovku prázdný řádek
[162] Napiš na obrazovku  "  " + Hodnota proměnné smyčky "B"
[163] Zruš Asociaci pro příponu souboru, která se rovná hodnotě proměnné smyčky "B" + do příkazu přidej znak "="
[164] Napiš na obrazovku prázdný řádek
[165] Nastav hodnotu proměnné "JdiNa" na výraz "KamDal"
[166] Přejdi do části dávky "DelTmp"
[167] Konec příkazů umístěných do kulatých závorek
[168] Nastav hodnotu proměnné "JdiNa" na vyraz "ClearAsoc1"
[169] Přejdi do části dávky "ChybnaKlavesa"
[170] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "ClearAsoc1"
[171] Počátek části dávky "Repair"
[172] Zruš proměnnou "JdiNa"
[173] Pokud neexistuje soubor "Zaloha_Asoc.TXT" umístěný v aktuálním adresáři dávky Přejdi do části dávky "EndEr"
[174] Vytvoř smyčku za pomoci příkazu "FOR", která bude po řádku číst ze souboru "Zaloha_Asoc.TXT" umístěného v aktuálním adresáři dávky. Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu jsou znaky "[]", které budou při čtení z textu vynechány První část textu čteného řádku bude zapsána do proměnné smyčky "A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B". Vykonej postupně příkazy uzavřené v kulatých závorkách - Počátek příkazů v kulatých závorkách
[175] Pokud se hodnota proměnné smyčky "A" rovná nule a hodnota proměnné smyčky "B" se nerovná hodnotám systémových proměnných "PROCESSOR_IDENTIFIER COMPUTRTERNAME HomeDrive USERNAME" Přejdi do části dávky "EndEr"
[176] Zřiď Asociaci která odpovídá hodnotě proměnné smyčky "B"
[177] Konec příkazů umístěných do kulatých závorek
[178] Zastav chod dávky a vyčkej na stisk libovolné klávesy
[179] Přejdi do části dávky "KamDal"
[180] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "Repair"
[181] Poznámka "---------------------------------------------------------------------------" Pokud je vypnuto zobrazování příkazů (Echo Off) není zobrazena při spuštění dávky a slouží pouze pro programátora
[182] Poznámka "Společné části dávky" Pokud je vypnuto zobrazování příkazů (Echo Off) není zobrazena při spuštění dávky a slouží pouze pro programátora
[183] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě odděluje poznámky od společných částí dávky
[184] Počátek části dávky "InstPrograms"
[185] Zapiš výstup příkazu ASSOC od prvního řádku souboru "Asoc.TXT", který bude umístěn viz hodnota systémové proměnné "TMP"
[186] Pomocí příkazu "FOR" vytvoř smyčku, která bude po řádku číst ze souboru "Assoc.TXT" umístěného v viz. hodnota systémové proměnné "TMP" Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu je znak "=",  který bude při čtení z textu vynechán. Do proměnné smyčky "A" bude zapsána pouze druhá část textu "token" Pokud není proměnná smyčky "A" prázdná Zapiš na další řádek souboru "TMP1" umístěného viz. hodnota systémové proměnné "TMP" hodnotu proměnné "A" smyčky "FOR" + přidej znak "="
[187] Setřiď sestupně soubor "TMP1.TXT" umístěný viz. hodnota systémové proměnné "TMP" setříděný výstup umísti do souboru "TMP2.TXT" umístěného viz. hodnota systémové proměnné "TMP"
[188] Vyhledej a očísluj řádky v souboru "TMP2.TXT" jež je umístěn viz.hodnota systémové proměnné "TMP", které obsahují znak "=" Výstup příkazu "FIND" Zapiš od prvního řádku do souboru "TMP3.TXT" jež je umístěn viz.hodnota systémové proměnné "TMP"
[189] Vytvoř smyčku za pomoci příkazu "FOR", která bude po řádku číst
ze souboru "TMP3.TXT" umístěného viz. hodnota systémové proměnné "TMP" Na počátku čtení přeskoč první řádek v souboru. Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu jsou znaky "[]", které budou při čtení z textu vynechány První část textu čteného řádku bude zapsána do proměnné smyčky "A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B". Pokud není proměnná smyčky "B" prázdná a pokud není v proměnné smyčky "B" zapsána pouze mezera Vykonej postupně příkazy uzavřené v kulatých závorkách - Počátek příkazů v kulatých závorkách
[190] Nastav hodnotu proměnné "Key" na hodnotu předanou do těla smyčky "For" tokenem jemuž ve smyčce "For" přidělena hodnota proměnné smyčky "B". Přičemž platí že "set Key=%%B" není totéž jako "set Key=%%b" smyčka "For" rozlišuje malá a velká písmena v označení proměnných smyčky!
[191] Nastav hodnotu proměnné "Zdrojový řádek" na hodnotu proměnné "A" smyčky "FOR"
[192] Konec příkazů umístěných do kulatých závorek
[193] Zapiš hodnotu proměnné "Key" na první řádek souboru "TMP4.TXT", který bude umístěn viz. hodnota systémové proměnné "TMP"
[194] Odečti od hodnoty proměnné "ZdrojRadek" číslici "1" a novou hodnotu zapiš do proměnné "ZdrojRadek"
[195] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "InstPrograms"
[196] Počátek části dávky "InstPrograms1"
[197] Vytvoř smyčku za pomoci příkazu "FOR", která bude po řádku číst ze souboru "TMP3.TXT" umístěného viz. hodnota systémové proměnné "TMP" Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu jsou znaky "[]=", které budou při čtení z textu vynechány První část textu čteného řádku bude zapsána do proměnné smyčky "A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B". Pokud se hodnota proměnné "B" smyčky "FOR" rovná proměnné "ZdroRadek" Vykonej postupně příkazy uzavřené v kulatých závorkách - Počátek příkazů v kulatých závorkách
[198] Nastav hodnotu proměnné "Key1" na hodnotu předanou do těla smyčky "For" tokenem jemuž ve smyčce "For" přidělena hodnota proměnné smyčky "B". Přičemž platí že "set Key1=%%B" není totéž jako "set Key1=%%b" smyčka "For" rozlišuje malá a velká písmena v označení proměnných smyčky!
[199] Přejdi do části dávky " InstPrograms2
[200] Konec příkazů umístěných do kulatých závorek
[201] Počátek části dávky "InstPrograms2
[202] Pokud se nerovná hodnota proměnné "Key" hodnotě proměnné "Key1" Vykonej postupně příkazy uzavřené v kulatých závorkách - Počátek příkazů v kulatých závorkách
[203] Zapiš hodnotu proměnné "Key1"+ znak "=" na další řádek souboru "TMP4.TXT", který je umístěn viz.hodnota systémové proměnné "TMP"
[204] Nastav hodnotu proměnné "Key" na hodnotu proměnné "Key1"
[205] Vymaž obrazovku
[206] Napiš na obrazovku  "  Probíhá zpracování výstupu příkazu ASSOC a jeho následná úprava ..."
[207] Napiš na obrazovku  "  ... operace může chvíli trvat!"
[208] Napiš na obrazovku  "  "+ hodnotu proměnné "ZdrojRadek"
[209] Konec příkazů umístěných do kulatých závorek
[210] Odečti od hodnoty proměnné "ZdrojRadek" číslici "1" a novou hodnotu zapiš do proměnné "ZdrojRadek"
[211] Pokud je hodnota proměnné "ZdrojRadek" menší než "1" Vykonej postupně příkazy uzavřené v kulatých závorkách - Počátek příkazů v kulatých závorkách
[212] Najdi v souboru "TMP4.TXT", který je umístěn viz. hodnota systémové proměnné "TMP", řádky s výskytem znaku "=" Výstup příkazu "FIND" s očíslovanými řádky zapiš do souboru "TMP5.TXT", který je umístěn viz. hodnota systémové proměnné "TMP"
[213] Vymaž obrazovku
[214] Napiš na obrazovku  "  Probíhá zpracování výstupu příkazu ASSOC a jeho následná úprava ..."
[215] Napiš na obrazovku  "  ... operace může chvíli trvat!"
[216] Napiš na obrazovku  "  " + hodnota proměnné "ZdrojRadek"
[217] Přejdi do části dávky "InstPrograms3"
[218] Konec příkazů umístěných do kulatých závorek
[219] Přejdi do části dávky " InstPrograms1"
[220] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "InstPrograms1"
[221] Počátek části dávky "InstPrograms3"
[222] Zapiš na první řádek souboru "TMP.TXT", který je umístěn viz. hodnota systémové proměnné "TMP", prázdný řádek.
[223] Zapiš na další řádek souboru "TMP.TXT", který je umístěn viz. hodnota systémové proměnné "TMP", text "  Seznam nainstalovaných programů ... Do pozice "výběr" zadejte číslo řádku"
[224] Pokud se hodnota proměnné "DiNa" rovná výrazu "NewAsoc" Zapiš na další řádek souboru "TMP.TXT", který je umístěn viz. hodnota systémové proměnné "TMP", text "  s programem ke kterému chcete vytvořit novou asociaci"
[225] Pokud se hodnota proměnné "DiNa" rovná výrazu "FindNet" Zapiš na další řádek souboru "TMP.TXT", který je umístěn viz. hodnota systémové proměnné "TMP", text "  s programem ke kterému chcete vyhledat podrobnosti na internetu."
[226] Zapiš na další řádek souboru "TMP.TXT", který je umístěn viz. hodnota systémové proměnné "TMP", text "  STRÁNKOVACÍ MENU POSUV "MEZERNÍKEM""
[227] Zapiš na další řádek souboru "TMP.TXT", který je umístěn viz. hodnota systémové proměnné "TMP", text "  --------------------------------------------------------------------------"
[228] Vytvoř smyčku za pomoci příkazu "FOR", která bude po řádku číst ze souboru "TMP5.TXT" umístěného viz. hodnota systémové proměnné "TMP" Na počátku čtení přeskoč první řádek v souboru. Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu jsou znaky "[]=", které budou při čtení z textu vynechány První část textu čteného řádku bude zapsána do proměnné smyčky "A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B". Pokud není proměnná smyčky "B" prázdná Zapiš na další řádek souboru "TMP.TXT", který je umístěn viz. hodnota systémové proměnné "TMP", znak "[" + hodnota proměnné smyčky "A" + znak "]" + "mezera" + hodnota proměnné smyčky "B"
[229] Zapiš na první řádek souboru "TMP.TXT", který je umístěn viz. hodnota systémové proměnné "TMP", prázdný řádek.
[230] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "InstPrograms3"
[231] Počátek části dávky "InstProgramMnu"
[232] Vymaž obrazovku
[233] Přečti a vypiš po obrazovkách soubor "TMP.TXT" umístěný v "viz hodnota systémové proměnné "TMP""
[234] Pokud není proměnná "Key" prázdná (nedefinovaná) zruš proměnnou "Key"
[235] Pokud není proměnná "JdiNa" prázdná (nedefinovaná) zruš proměnnou "JdiNa"
[236] Zapiš hodnotu zadanou z klávesnice za titulek "Váš výběr" po stisku klávesy "Enter" do proměnné "Key"
[237] Vytvoř smyčku za pomoci příkazu "FOR", která bude po řádku číst ze souboru "TMP5.TXT" umístěného viz. hodnota systémové proměnné "TMP" Na počátku čtení přeskoč první řádek v souboru. Čtený řádek bude při čtení rozdělen na 2 části "tokens" přičemž oddělovačem textu jsou znaky "[]=", které budou při čtení z textu vynechány První část textu čteného řádku bude zapsána do proměnné smyčky "A" Druhá část textu čteného řádku bude zapsána do proměnné smyčky "B". Pokud se rovná proměnná smyčky "A" hodnotě proměnné "Key" Proveď postupně příkazy uzavřené do kulatých závorek - Počátek příkazů uzavřených do kulatých závorek
[238] Nastav hodnotu proměnné "Key" na hodnotu předanou do těla smyčky "For" tokenem jemuž ve smyčce "For" přidělena hodnota proměnné smyčky "B". Přičemž platí že "set Key=%%B" není totéž jako "set Key=%%b" smyčka "For" rozlišuje malá a velká písmena v označení proměnných smyčky!
[239] Pokud se hodnota proměnné "DiNa" rovná výrazu "NewAsoc" Přejdi do části dávky "NewAsoc"
[240] Pokud se hodnota proměnné "DiNa" rovná výrazu "FindNet" Přejdi do části dávky "FindNet"
[241] Konec příkazů umístěných do kulatých závorek
[242] Nastav hodnotu proměnné "JdiNa" na výraz "InstProgramMnu"
[243] Přejdi do části dávky ChybnaKlavesa
[244] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "InstProgramMnu"
[245] Počátek části dávky "Zpracovani"
[246] Vymaž obrazovku
[247] Napiš na obrazovku prázdný řádek
[248] Pokud neexistuje soubor "Zaloha_Asoc.TXT" umístěný v aktuálním adresáři dávky. Vytvoř smyčku pomocí příkazu "FOR" s proměnnou smyčky "I" a počítej po jedné od 7 do 8.(7,1,8) do pokud se hodnota proměnné "I" smyčky "FOR" rovná hodnotě proměnné "Key" Proveď postupně příkazy uzavřené do kulatých závorek - Počátek příkazů v kulatých závorkách
[249] Napiš na obrazovku text "  Do složky" + Hodnotu proměnné "CD" (Hodnota proměnné systému "CD" zobrazuje vždy cestu k aktuálnímu adresáři)
[250] Napiš na obrazovku  "  odkud byla spuštěna dávka vytvářím záložní soubor "Zaloha_Asoc.TXT".
[251] Napiš na obrazovku prázdný řádek
[252] Napiš na obrazovku  "  Prosím nemažte tento soubor dokud si nebudete jisti že nechcete obnovit"
[253] Napiš na obrazovku  "  původní stav počítače před prvním spuštěním úprav pomocí této dávky."
[254] Napiš na obrazovku prázdný řádek
[255] Napiš na obrazovku  "  Zapisuji ..."
[256] Výstup příkazu ASSOC poskytni jako vstup příkazu "FIND". Vyhledej a očísluj všechny řádky, které obsahují znak "=" (očíslování všech řádků v souboru) Výsledek vyhledání zapiš na další řádek do souboru "TMP.TXT" umístěného viz. hodnota systémové proměnné "TMP"
[257] Zapiš na první řádek souboru "Zaloha_Asoc.TXT", který bude umístěn v aktuálním adresáři dávky, text "[0]" + Hodnoty systémových proměnných "PROCESSOR_IDENTIFIER" "%COMPUTRTERNAME" "HomeDrive" "USERNAME"
[258] Pomocí příkazu "FOR" vytvoř smyčku s počáteční proměnnou "a", která bude po řádku číst ze souboru "TMP.TXT" uloženého viz. hodnota systémové proměnné "TMP", přičemž řádky budou rozděleny do 3 částí kdy oddělovačem textu jsou znaky "[]=" 1.část bude uložena do proměnné smyčky "a" 2.část bude uložena do proměnné smyčky "b" 3.část bude uložena do proměnné smyčky "c". Pokud není proměnná smyčky "c" prázdná zapiš na další řádek souboru "Zaloha_Asoc.TXT", který je umístěn v aktuálním adresáři dávky, znak "["+ hodnota proměnné smyčky "a" + znak "]"+ hodnota proměnné smyčky "b" + znak "="+ hodnota proměnné smyčky "c"
[259] Pokud existuje soubor "Zaloha_Asoc.TXT" v aktuálním adresáři dávky. Napiš na obrazovku  "  Záloha byla zapsána. Ověřena existence souboru "Zaloha_Asoc.TXT""
[260] Pokud neexistuje soubor "Zaloha_Asoc.TXT" v aktuálním adresáři dávky. Přejdi do části dávky "EndEr"
[261] Napiš na obrazovku prázdný řádek
[262] Zastav chod dávky a vyčkej na stisk libovolné klávesy
[263] Vymaž obrazovku
[264] Napiš na obrazovku prázdný řádek
[265] Konec příkazů umístěných do kulatých závorek
[266] Napiš na obrazovku  "  Probíhá zpracování výstupu příkazu ASSOC a jeho následná úprava ..."
[267] Napiš na obrazovku  "  ... operace může chvíli trvat!"
[268] Napiš na obrazovku prázdný řádek
[269] Pokud se hodnota proměnné "Key" rovná dvěma proveď postupně příkazy uzavřené mezi kulaté závorky - Počátek příkazů v kulaté závorce
[270] Nastav hodnotu proměnné "JdiNa" na výraz "WiewProgrFile"
[271] Přejdi do části dávky "DelTmp"
[272] Konec příkazů umístěných do kulatých závorek
[273] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti.
[274] Pokud se hodnota proměnné "Key" rovná třem proveď postupně příkazy uzavřené mezi kulaté závorky - Počátek příkazů v kulaté závorce
[275] Nastav hodnotu proměnné "JdiNa" na výraz "WiewNoAsoc"
[276] Přejdi do části dávky DelTmp
[277] Konec příkazů umístěných do kulatých závorek
[278] Pokud se hodnota proměnné "Key" rovná čtyřem proveď postupně příkazy uzavřené mezi kulaté závorky - Počátek příkazů v kulaté závorce
[279] Nastav hodnotu proměnné "JdiNa" na výraz "FindNetExtens"
[280] Přejdi do části dávky "DelTmp"
[281] Konec příkazů umístěných do kulatých závorek
[282] Pokud se hodnota proměnné "Key" rovná pěti proveď postupně příkazy uzavřené mezi kulaté závorky - Počátek příkazů v kulaté závorce
[283] Nastav hodnotu proměnné "JdiNa" na výraz "InstPrograms"
[284] Nastav hodnotu proměnné "DiNa" na výraz "FindNet"
[285] Přejdi do části dávky DelTmp
[286] Konec příkazů umístěných do kulatých závorek
[287] Pokud se hodnota proměnné "Key" rovná sedmi proveď postupně příkazy uzavřené mezi kulaté závorky - Počátek příkazů v kulaté závorce
[288] Nastav hodnotu proměnné "JdiNa" na výraz "InstPrograms"
[289] Nastav hodnotu proměnné "DiNa" na výraz "NewAsoc"
[290] Přejdi do části dávky DelTmp
[291] Konec příkazů umístěných do kulatých závorek
[292] Pokud se hodnota proměnné "Key" rovná osmi proveď postupně příkazy uzavřené mezi kulaté závorky - Počátek příkazů v kulaté závorce
[293] Nastav hodnotu proměnné "JdiNa" na výraz "ClearAsoc"
[294] Přejdi do části dávky DelTmp
[295] Konec příkazů umístěných do kulatých závorek
[296] Nastav hodnotu proměnné "JdiNa" na výraz "Repair"
[297] Přejdi do části dávky "DelTmp"
[298] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "Zpracování"
[299] Počátek části dávky "Varovani
[300] Vymaž obrazovku
[301] Napiš na obrazovku prázdný řádek
[302] Napiš na obrazovku  "  VAROVÁNÍ!"
[303] Napiš na obrazovku prázdný řádek
[304] Napiš na obrazovku  "  OPERACE ZASAHUJE DO NASTAVENÍ POČÍTAČE! CHCETE POKRAČOVAT?"
[305] Napiš na obrazovku prázdný řádek
[306] Napiš na obrazovku "Ano = "A" Jiná klávesa = "Ne" pak stiskněte "Enter""
[307] Napiš na obrazovku prázdný řádek
[308] Zapiš hodnotu zadanou z klávesnice za titulek "Váš výběr" po stisku klávesy "Enter" do proměnné "Key1"
[309] Pokud se hodnota proměnné "Key1" rovná znaku "a" (Podmínka "If s parametrem "/I" nerozlišuje znaky velká - malá písmena) Přejdi do části dávky "Zpracovani"
[310] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "Varovani"
[311] Počátek části dávky "KamDal"
[312] Napiš na obrazovku prázdný řádek
[313] Napiš na obrazovku "  -------------------------------------------------------------------------"
[314] Napiš na obrazovku prázdný řádek
[315] Napiš na obrazovku  "  Kam dále?"
[316] Napiš na obrazovku  "    1 - Vrátit zpět hlavní menu"
[317] Napiš na obrazovku  "    2 - Ukončit dávku"
[318] Napiš na obrazovku  "    3 - Pokud byla prováděna změna asociací restartovat PC a dokončit zápis"
[319] Napiš na obrazovku prázdný řádek
[320] Pokud není proměnná "Key" prázdná (nedefinovaná) zruš proměnnou "Key"
[321] Pokud není proměnná "Key1" prázdná (nedefinovaná) zruš proměnnou "Key"
[322] Pokud není proměnná "JdiNa" prázdná (nedefinovaná) zruš proměnnou "JdiNa"
[323] Zapiš hodnotu zadanou z klávesnice za titulek "Váš výběr" po stisku klávesy "Enter" do proměnné "Key"
[324] Pokud se hodnota proměnné "Key" rovná jedné přejdi do části dávky "StrtMnu"
[325] Pokud se hodnota proměnné "Key" rovná dvěma přejdi do části dávky "End"
[326] Pokud se hodnota proměnné "Key" rovná třem proveď postupně příkazy uzavřené mezi kulaté závorky - Počátek příkazů v kulaté závorce
[327] Spusť program "Shutdown.exe" s parametry Restart PC za 30 sekund s poznámkou "Probíhá restart vyvolaný dávkou Otevri_v_programu."
[328] Přejdi do části dávky "DelTmp"
[329] Konec příkazů umístěných do kulatých závorek
[330] Nastav hodnotu proměnné "JdiNa" na výraz "KamDal"
[331] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "KamDal"
[332] Počátek části dávky "ChybnaKlavesa"
[333] Vymaž obrazovku
[334] Napiš na obrazovku prázdný řádek
[335] Napiš na obrazovku "  Byla stisknuta klávesa mimo povolený výběr!"
[336] Napiš na obrazovku prázdný řádek
[337] Napiš na obrazovku "Vámi stisknutá klávesa "hodnota proměnné "Key"""
[338] Napiš na obrazovku prázdný řádek
[339] Zastav chod dávky a vyčkej na stisk libovolné klávesy
[340] Přejdi do části dávky jejíž název obsahuje hodnota proměnné "JdiNa"
[341] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "ChybnaKlavesa"
[342] Počátek části dávky "EndEr"
[343] Vymaž obrazovku
[344] Napiš na obrazovku prázdný řádek
[345] Napiš na obrazovku  "  Dávka byla pro chybu nebo na vaše přání ukončena."
[346] Přejdi do části dávky "DelTmp"
[347] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "EndEr"
[348] Počátek části dávky "End"
[349] Vymaž obrazovku
[350] Napiš na obrazovku prázdný řádek
[351] Napiš na obrazovku  "  Operace byla dokončena. Dávka byla zastavena"
[352] Volný řádek Na funkci dávky nic nezmění a dávce přidá na přehlednosti. V tomto případě označuje konec části dávky "End"
[353] Počátek části dávky "DelTmp"
[354] Napiš na obrazovku prázdný řádek
[355] Nastav hodnotu proměnné "Key" na nula
[356] Pokud existuje soubor "Asoc.TXT" umístěný viz. hodnota systémové proměnné "TMP" Nastav hodnotu proměnné "Key" na číslici "1"
[357] Pokud existují soubory "TMP?.TXT" umístěný viz. hodnota systémové proměnné "TMP" Nastav hodnotu proměnné "Key" na číslici "1"
[358] Pokud se hodnota proměnné "Key" rovná číslici "1" Napiš na obrazovku "  Mažu dočasné soubory."
[359] Pokud existuje soubor "Asoc.TXT" umístěný viz. hodnota systémové proměnné "TMP" vymaž tento soubor.
[360] Pokud existují soubory "TMP?.TXT" umístěné viz. hodnota systémové proměnné "TMP" vymaž tyto soubory.
[361] Pokud je definována hodnota proměnné "JdiNa" Přejdi do části dávky jejíž název obsahuje hodnota proměnné "JdiNa"
[362] Proveď 6* "Ping" dotaz na web odezvu u lokálního hostitele a nezobrazuj výstup příkazu. Počká zhruba 6 sekund než přejde k další operaci (U Windows se tento příkaz v tomto tvaru často užívá jako náhrada původního DOS příkazu CHOICE, který v DOS integrovaných ve Win chybí)
[363] Ukonči chod dávky

Popis jednotlivých bloků v dávce:

Řádkový popis umístěný výše Vám dal přehled o tom co provádějí jednotlivé příkazy složené do jednotlivých řádků. Popis částí by vám měl poskytnout přehled o tom co provádějí jednotlivé celky a začínajícím programátorům možnost rychle najít a upravit požadovaný sled operací pro dávku, která vzniká pod jejich rukama.

Popis částí dávky podle názvu bloků

[4] StrtMnu - Start Menu
[52] WiewProgrFile - Ukaž asociace Program - Soubor
[70] WiewNoAsoc - Ukaž typy souborů bez asociace
[98] FindNetExtens - Vyhledej na internetu typ souboru a program k souboru podle přípony
[106] FindNetExtens1 - pokračování vyhledání na internetu - rozdělení na dvě části bylo potřebné aby v případě chybného zadání výběru již nebyly znovu zpracovávány vstupní soubory.
[121] FindNet - Vyhledej program na internetu
[126] NewAsoc - Zřízení nové asociace Přípona souboru - Program
[141] ClearAsoc - Zruš asociaci Soubor - Program
[151] ClearAsoc1 - pokračování zrušení asociace - rozdělení na dvě části bylo potřebné aby v případě chybného zadání výběru již nebyly znovu zpracovávány vstupní soubory.
[171] Repair - Obnova předchozího stavu ze zálohy
[184] InstPrograms - Zjištění instalovaných programů začátek (Vypsání pouze pravé strany výrazů výstupu příkazu ASSOC z vynecháním opakujících se výrazů.)
[196] InstPrograms1 - Zjištění instalovaných programů pokračování 1
[201] InstPrograms2 - Zjištění instalovaných programů pokračování 2
[221] InstPrograms3 - Zjištění instalovaných programů pokračování 3
[231] InstProgramMnu - instalované programy menu - konečný výstup z částí InstPrograms1,2,3
[245] Zpracovani - v této části se nachází zálohování původního stavu a upozornění na délku zpracování dat.
[299] Varovani - Upozornění na zásah do SW PC
[311] KamDal - Čekání na volbu kam vás má dávka vrátit po dokončení operací
[332] ChybnaKlavesa - Část dávky s chybovým hlášením, které dávka vypisuje při stisku klávesy mimo povolený výběr.
[342] EndEr - informace o ukončení dávky pro chybu
[348] End - informace o ukončení dávky
[353] DelTmp - Vymazání dočasných souborů dávky

Popis zajímavých částí dávky pro programátory

  1. Úvodní příkazy složitější dávky jsou nepovinné ale u mne je najdete ve všech složitějších dávkách ... řádek 1 až 3
  2. Start Menu ... řádek 4 až 31 Obsah menu si samozřejmě můžete upravit dle vašich požadavků. Podmínka na řádku 29 je nutná pokud v dávce užijete návrat například z chybového hlášení a výběr budete znovu provádět do proměnné ze stejným názvem. Pokud by došlo k chybnému výběru a nebyla by při návratu chybná hodnota z proměnné "Key" vymazána pak stačí pouhý stisk klávesy "Enter" a aniž by jste zadávali další znaky zadáte znovu předchozí chybný výběr 2* stejné chybové hlášení pak může být pro uživatele velmi matoucí. Podmínka řádek 30 není nutná ale proměnná "JdiNa" nebude užita pokud nedojde znovu k chybnému výběru.
  3. Zpracování výběru z menu tedy hodnoty vložené z klávesnice do proměnné "Key". Řádky 32 až 48 Tato část se dá napsat různým způsobem v uváděných řádcích najdete kombinaci snad všech užitelných způsobů.
    1. Veškeré příkazy, které se mají po výběru hodnoty z menu vykonat jsou umístěny ihned za podmínkou v kulatých závorkách a poslední příkaz vrací dávku buď do výchozího bodu nebo prostě tam kde si programátor přeje aby dávka pokračovala. Řádky 32 až 41
    2. Několik hodnot výběru pokračuje ve stejné části dávky - Odeslání z výběru parametru menu do stejné části dávky. Řádek 42
      Začátečník by asi psal pro každou hodnotu výběru novou podmínku za níž by následovalo odeslání (příkaz Goto) do patřičné části tento způsob by v naší ukázkové dávce v tomto konkrétním případě zabral 4 řádky Pokud užijete příkaz "FOR" jste schopni celou operaci zapsat v jednom řádku Je to tedy méně psaní a zároveň soubor dávky bude menší.
    3. Prosté odeslání do patřičné části dávky kde se budou vykonávat další požadované příkazy. Řádek 48
  4. Odeslání do společné části dávky za účelem zobrazení chybového hlášení. Řádky 49 a 50 Pokud byl proveden chybný výběr nedojde ke splnění podmínek napsaných v předchozích řádcích a dávka dojde až k řádku 49 Nyní má programátor opět možnost psát pro každé menu chybové hlášení samostatně pod sloupec podmínek nebo užít pro všechna menu stejný název proměnné do které se ukládá výběr (v tomto případě Key) a do proměnné (v našem případě JdiNa) zadat dávce informaci kam se má po zobrazení chybového hlášení vrátit. další řádek pak obsahuje odeslání do části dávky s chybovým hlášením. Pak je možné pro stejný typ chyby napsat pouze jedno chybové hlášení pro všechna například menu. Společné chybové hlášení opět může programátorovi ušetřit psaní a zároveň zmenšit velikost souboru dávky.
    PS: Podobný postup je využit u více částí ukázkové dávky. Prostě vše o čem jsem při vytváření dávky věděl že se bude opakovat je ve společné části a návrat do samostatných částí je vždy řízen proměnnou "JdiNa"
  5. Prohození pravé a levé části výstupu příkazu "ASSOC" s tím že za střed je považován znak "=" a následné setřídění dle abecedy Řádky 54 a 55
  6. Zápis a postupné zobrazení většího menu než pojme okno dávky. Řádky 53 až 66
  7. Vypsání údajů levé strany textu které nemají na pravé straně žádný text. Přičemž za střed je považován znak "=" Řádky 71 až 74
  8. Netradiční kontrola zdali byli údaje zapsány do souboru pomocí příkazu "Find" Řádky 75 až 85
  9. Vyhledávání na internetu pomocí stránky http://www.goosh.org , která má tu zvláštnost že se chová jako Příkazová řádka. Řádky 99 až 124 podrobněji o vyhledávání pomocí Google přímo z dávky ZDE viewtopic.php?p=430767#p430767
  10. Menu přes několik obrazovek kde se místo vypisování údajů na vybraném řádku jako volba zadává číslo řádku tzn. čím je text na řádku delší tím rychlejší je výběr protože v našem případě stačí pro výběr třímístné číslo. Řádky 100 až 111
  11. Doplnění chybějícího povinného znaku na první pozici zleva do hodnoty proměnné pokud tento znak nebyl zapsán. Řádek 133
  12. Nelze obnovit zálohu pokud není spuštěna na stejném PC a ve stejném operačním systému Řádky 175 a 257
  13. Vypsání pouze pravé strany výrazů výstupu příkazu ASSOC z vynecháním opakujících se výrazů. S tím že za střed řádku je považován znak "=". Řádky 185 až 236 V tomto případě je to pro mne u této dávky rozlousknutý docela tvrdý ořech. Dalo by se napsat jednodušeji za předpokladu že se před spuštěním dávky překontroluje a spustí povolení užívat rozšířené příkazy. Pak by bylo možné ve smyčkách "FOR" užít zpožděné rozvinutí proměnné. Tak jak je to napsané by mělo fungovat i bez rozšířených příkazů. Prostě každý název programu tak jak je poskytuje pravá strana výstupu příkazu ASSOC bude vypsán jen jednou.
  14. Částečná náhrada původního DOS příkazu CHOICE, který v DOS pod Windows chybí. Řádek 362

Odkaz pro stažení:
Nemáte oprávnění prohlížet přiložené soubory.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž

Re: Soubory *.bat; *.cmd - Dávkové soubory a příkazový řádek

Příspěvekod Jan Pašek » 07 bře 2011 00:04

Užití příkazu SHUTDOWN - Vypnutí, Restart, Spánek, Odhlášení z PC + Jak vytvořit zástupce s tímto příkazem + Ukázková dávka s popisem

Téma vypnoutí, restart, spánek, odhlášení z PC je zde na fóru roztroušeno v několika vláknech a pokud zadáte hledání na internetu také neodejdete s nepořízenou. Kouzlo celého je v tom ... Nač přidávat další program když už potřebný příkaz máte instalovaný.

Zde je nápověda k příkazu SHUTDOWN:

Kód: Vybrat vše

Použití: shutdown [-i | -l | -s | -r | -a] [-f] [-m \\název_počítače] [-t xx] [-c "komentář"] [-d up:xx:yy]

        Bez argumentů   Zobrazí tuto zprávu (stejně jako možnost -?).
        -i                      Zobrazí grafické uživatelské rozhraní, nutné zadat jako první možnost.
        -l                      Odhlášení (nelze použít s možností -m).
        -s                      Vypne počítač.
        -r                      Vypne a restartuje počítač.
        -a                      Přeruší vypnutí systému.
        -m \\název_počítače     Umožní vypnout, restartovat nebo přerušit vypnutí vzdáleného počítače.
        -t xx                   Nastaví časový limit pro vypnutí počítače na xx sekund.
        -c "komentář"           Komentář k vypnutí (maximálně 127 znaků).
        -f                      Vynutí ukončení běžících aplikací bez zobrazení upozornění.
        -d [u][p]:xx:yy         Kód důvodu pro vypnutí počítače.
                                u je kód uživatele
                                p je kód plánovaného vypnutí počítače
                                xx je hlavní kód důvodu (kladné celé číslo menší než 256)
                                yy je vedlejší kód důvodu (kladné celé číslo menší než 65536)

Pokud vyžadujete okamžitou akci a jste "myšoidní tip" (radeji klikáte) doporučuji vytvoření zástupců na ploše:
Odkaz na návod: http://blackweb.pise.cz/4605-zastupce-v ... plose.html
A protože návod obsahuje v příkazu malou chybu (jedna mezera na víc přináším opravený přepis:

Zástupce pro vypnutí a restart PC
Můžete si vytvořit na Ploše (nebo kdekoli jinde) zástupce pro restart nebo vypnutí PC. Postup:

1. Pravým tlačítkem myši klikněte na pracovní plochu.
2. Přesuňte se na položku "Nový".
3. Klikněte na položku "Zástupce".
4. Do pole "Zadajte umístění položky" napište:
    a) shutdown -s -t 00 Vypnutí počítače
    b) shutdown -r -t 00 Restart počítače
    c) logoff Odhlášení z Windows
5. Klikněte na tlačítko "Další".
6. Pojmenujte daného zástupce a klikněte na tlačítko "Dokončit".
7. Pravým tlačítkem myši klikněte na daný odkaz a klikněte na "Vlastnosti".
8. Klikněte na "Změnit ikonu" a vyberte tu samou ikonu která se zobrazuje v Nabídce Start a Vypnout počítač.

Zástupci "Vypnout, Restart, Spánek, Odhlásit ke stažení stačí "rozbalit" dekomprimovat na plochu:

Plocha.zip

Pokud ale budete chtít využít všechny možnosti příkazu SHUTDOWN dostanete se ...
A) k vytvoření zástupce který vyvolá grafické rozhraní SHUTDOWN. Viz návod výše s malou změnou ... Do pole "Zadajte umístění položky" napište: shutdown -i
B) k napsání alespoň jednoduchého dávkového souboru a pokud jste puntičkáři a snažíte se dávku vypilovat k dokonalosti vyleze vám z dávky ucelený prográmek ovládaný pomocí klávesnice. Do tohoto stavu jsem bohužel nebo sanad bohudík dospěl i já když sem se snažil napsat příklad užití příkazu SHUTDOWN

Dávka Ukončit činnost (volný překlad Shutdown)

Pomocí spuštěné dávky lze provést s PC následující úkony ... Vypnutí počítače, Restart počítače, Odhlášení uživatele operačního systému, Uvedení počítače do režimu spánku. Uváděné operace je možné provést s okamžitou účinností nebo s časovým odkladem přičemž je možné užít předvolby 15;30;45 minut 1; 1,5; 2; 2,5 hodiny nebo si nastavit svůj vlastní čas až do hodnoty 23:59:59.
Dávka je dále zabezpečena proti vložení chybných dat a proti neuvedení požadovaných dat v těchto případech vypisuje chybová hlášení.

V následujícím okně si můžete dávku prohlédnout JEDNÁ SE O NESPUSTITELNOU KOPII PROTOŽE JE DOPLNĚNA ČÍSLY ŘÁDKŮ KTERÉ KORESPONDUJÍ S ČÍSLY ŘÁDKŮ O OKNO NÍŽE V POPISU DÁVKY (Příkaz v řádku dávky bude funkční pokud odstaraníte "00X - ") Dávka má takřka 200 řádků užijte svislý posuvník u patřičného okna.

Kód: Vybrat vše

001 - @echo OFF
002 - color 1E
003 - Title Ukončit činnost..www.PC-help.cz
004 - :Mnu1
005 - cls
006 - echo.
007 - echo POKUD MÁ BÝT DÁVKA FUNKČNÍ MUSÍTE JI SPUSTIT Z ÚČTU S PRÁVY ADMINISTRÁTORA!
008 - echo DÁVKA NESMÍ BÝT SPUŠTĚNA Z MÉDIA NA KTERÉ NELZE ZAPISOVAT!
009 - echo --------------------------------------------------------------------------
010 - echo  Vyverte operaci:
011 - echo    Okamžitá akce:
012 - echo      1 - Vypnout PC
013 - echo      2 - Restartovat PC
014 - echo      3 - Uspat PC
015 - echo      4 - Odhlásit mne
016 - echo.
017 - echo    Akce s časovým odkladem:
018 - echo      5 - Vypnout PC
019 - echo      6 - Restartovat PC
020 - echo      7 - Uspat PC
021 - echo      8 - Odhlásit mne
022 - echo.
023 - echo   9 - Nic neprovádět
024 - echo   0 - Odvolat spuštěnou akci
025 - echo.
026 - echo  Stiskněte klávesu s číslicí výběru pak stiskněte "Enter"
027 - If not "%Key%"=="" set Key=
028 - If not "%JdiNa%"=="" set JdiNa=
029 - set /P Key= Váš výběr:
030 - If "%Key%"=="1" (
031 - shutdown -s
032 - exit
033 - )
034 - If "%Key%"=="2" (
035 - shutdown -r
036 - exit
037 - )
039 - If "%Key%"=="3" (
040 - start "" %windir%\system32\rundll32.exe PowrProf.dll SetSuspendState
041 - exit
042 - )
043 - If "%Key%"=="4" (
044 - shutdown -l
045 - exit
045 - )
046 - If "%Key%"=="9" exit
047 - If "%Key%"=="0" (
048 - shutdown -a
049 - exit
050 - )
051 - For /L  %%I IN (5,1,8) DO If "%%I"=="%Key%" goto Mnu2
052 - set JdiNa=Mnu1
053 - goto ChybnaKlavesa
054 -
055 - :Mnu2
056 - cls
057 - echo.
058 - echo  Vyverte čas akce:
059 - echo    1 - Akce za 15 minut
060 - echo    2 - Akce za 30 minut
061 - echo    3 - Akce za 45 minut
062 - echo    4 - Akce za 1 hodinu
063 - echo    5 - Akce za 1 hodinu 30 minut
064 - echo    6 - Akce za 2 hodiny
065 - echo    7 - Akce za 2 hodiny 30 minut
066 - echo    8 - Zadat vlastní čas
067 - echo    9 - Nic neprovádět - Storno
068 - echo.
069 - echo  Stiskněte klávesu s číslicí výběru pak stiskněte "Enter"
070 - If not "%Key1%"=="" set Key1=
071 - If not "%JdiNa%"=="" set JdiNa=
072 - set /P Key1= Váš výběr:
073 - If "%Key1%"=="8" Goto ZadatCas
074 - If "%Key1%"=="9" exit
075 - For /L  %%I IN (1,1,7) DO If "%%I"=="%Key1%" (
076 - If "%Key1%"=="1" set cas=900
077 - If "%Key1%"=="2" set cas=1800
078 - If "%Key1%"=="3" set cas=2700
079 - If "%Key1%"=="4" set cas=3600
080 - If "%Key1%"=="5" set cas=5400
081 - If "%Key1%"=="6" set cas=7200
082 - If "%Key1%"=="7" set cas=9000
083 - )
084 - :Spustit
085 - If not "%Cas%"=="" If "%Key%"=="5" (
086 - shutdown -s -t %Cas% -c "Probihá vypnuti PC vyvolane davkou Ukoncit cinnost. Odvolani provedete volbou v davce po jejim opetovnem spusteni"
087 - exit
088 - )
089 - If not "%Cas%"=="" If "%Key%"=="6" (
090 - shutdown -r -t %Cas% -c "Probihá Restart PC vyvolany davkou Ukoncit cinnost Odvolani provedete volbou v davce po jejim opetovnem spusteni"
091 - exit
092 - )
093 - If not "%Cas%"=="" If "%Key%"=="7" (
094 - echo.
095 - echo  Probíhá odpočet k uspání PC z %Cas% sekund
096 - echo.
097 - echo  Odvolání provedete uzavřením okna dávky
098 - ping -n %Cas% localhost >nul
099 - start "" %windir%\system32\rundll32.exe PowrProf.dll SetSuspendState
100 - exit
101 - )
102 - If not "%Cas%"=="" If "%Key%"=="8" (
103 - echo.
104 - echo  Probíhá odpočet k odhlášení z %Cas% sekund
105 - echo.
106 - echo  Odvolání provedete uzavřením okna dávky
107 - ping -n %Cas% localhost >nul
108 - shutdown -l
109 - exit
110 - )
111 - set JdiNa=Mnu2
112 - goto ChybnaKlavesa
113 -
114 - :ZadatCas
115 - cls
116 - echo.
117 - echo  Prosím na následující řádek do pozice kurzoru zadejte čas ve formátu ...
118 - echo.
119 - echo  hh:mm:ss
120 - if not "%Cas%"=="" set Cas=
121 - If not "%JdiNa%"=="" set JdiNa=
122 - echo.
123 - set /P Cas= Zadejte čas:
124 - if "%Cas%"=="" (
125 - If exist TMP.TXT del TMP.TXT
126 - set JdiNa=ZadatCas
127 - goto ChybnaKlavesa
128 - )
129 - echo %Cas%> TMP.TXT
130 - For /F "tokens=1-3 delims=:" %%A IN (TMP.TXT) DO ( 
131 - set Hodiny=%%A
132 - set Minuty=%%B
133 - set Sekundy=%%C
134 - )
135 - del TMP.TXT
136 - if "%Hodiny:~0,1%"=="0" For /L %%I IN (0,1,9) DO If "%%I"=="%Hodiny:~1,1%" set Hodiny=%%I
137 - If "%Hodiny%"=="0" goto CtrlMinut
138 - set Cas=0
139 - For /L %%I IN (0,1,23) DO If "%%I"=="%Hodiny%" set Cas=1
140 - If "%Cas%"=="0" (
141 - Cls
142 - echo.
143 - echo  Vyskytla se chyba v zadání počtu hodin! 23 je maximum!
144 - echo.
145 - echo  Vámi zadaný počet hodin.. "%Hodiny%"
146 - echo.
147 - pause
148 - Goto ZadatCas
149 - )
150 - :CtrlMinut
151 - if "%Minuty:~0,1%"=="0" For /L %%I IN (0,1,9) DO If "%%I"=="%Minuty:~1,1%" set Minuty=%%I
152 - If "%Minuty%"=="0" goto CtrlSekund
153 - set Cas=0
154 - For /L %%I IN (0,1,59) DO If "%%I"=="%Minuty%" set Cas=1
155 - If "%Cas%"=="0" (
156 - Cls
157 - echo.
158 - echo  Vyskytla se chyba v zadání počtu Minut! 59 je maximum!
159 - echo.
160 - echo  Vámi zadaný počet minut.. "%Minuty%"
161 - echo.
162 - pause
163 - Goto ZadatCas
164 - )
165 - :CtrlSekund
166 - if "%Sekundy:~0,1%"=="0" For /L %%I IN (1,1,9) DO If "%%I"=="%Sekundy:~1,1%" set Sekundy=%%I
167 - If "%Sekundy%"=="0" goto Vypocet
168 - set Cas=0
169 - For /L %%I IN (0,1,59) DO If "%%I"=="%Sekundy%" set Cas=1
170 - If "%Cas%"=="0" (
171 - Cls
172 - echo.
173 - echo  Vyskytla se chyba v zadání počtu sekund! 59 je maximum!
174 - echo.
175 - echo  Vámi zadaný počet sekund.. "%Sekundy%"
176 - echo.
177 - pause
178 - Goto ZadatCas
179 - )
180 - :Vypocet
181 - set /a Hodiny=Hodiny*3600
182 - set /a Minuty=Minuty*60
183 - set /a Cas=Hodiny+Minuty+Sekundy
184 - Goto Spustit
185 -
186 - :ChybnaKlavesa
187 - cls
188 - echo.
189 - echo  Byla stisknuta klávesa mimo povolený výběr!
190 - echo.
191 - If "%JdiNa%"=="Mnu1" echo  Vámi stisknutá klávesa "%Key%"
192 - If "%JdiNa%"=="Mnu2" echo  Vámi stisknutá klávesa "%Key1%"
193 - If "%Cas%"=="" echo  Nebyl zadán čas!
194 - echo.
195 - pause
196 - Goto %JdiNa%

Popis příkazů dávky po jednotlivých řádcích:

Kód: Vybrat vše

001 - Vypni zobrazování příkazů;  @ = Nezobrazuj ani tento příkaz
002 - Nasav barvu pozadí okna na modrou; Nastav barvu písma na žlutou
003 - Nastav titulek okna na "Ukončit činnost..www.PC-help.cz"
004 - Začátek části dávky "Mnu1" (slouží pro návrat z chybového hlášení)
005 - Vymaž obrazovku (není nutné při prvním spuštění dávky ale je nutné pokud se vracíte s chybového hlášení)
006 - Napiš na obrazovku prázdný řádek
007 - Napiš na obrazovku "POKUD MÁ BÝT DÁVKA FUNKČNÍ MUSÍTE JI SPUSTIT Z ÚČTU S PRÁVY ADMINISTRÁTORA!"
008 - Napiš na obrazovku "DÁVKA NESMÍ BÝT SPUŠTĚNA Z MÉDIA NA KTERÉ NELZE ZAPISOVAT!"
009 - Napiš na obrazovku "--------------------------------------------------------------------------"
010 - Napiš na obrazovku "Vyverte operaci:"
011 - Napiš na obrazovku " Okamžitá akce:"
012 - Napiš na obrazovku "      1 - Vypnout PC"
013 - Napiš na obrazovku "      2 - Restartovat PC"
014 - Napiš na obrazovku "      3 - Uspat PC"
015 - Napiš na obrazovku "      4 - Odhlásit mne"
016 - Napiš na obrazovku prázdný řádek
017 - Napiš na obrazovku " Akce s časovým odkladem:"
018 - Napiš na obrazovku "      5 - Vypnout PC"
019 - Napiš na obrazovku "      6 - Restartovat PC"
020 - Napiš na obrazovku "      7 - Uspat PC"
021 - Napiš na obrazovku "      8 - Odhlásit mne"
022 - Napiš na obrazovku prázdný řádek
023 - Napiš na obrazovku " 9 - Nic neprovádět"
024 - Napiš na obrazovku " 0 - Odvolat spuštěnou akci"
025 - Napiš na obrazovku prázdný řádek
026 - Napiš na obrazovku "Stiskněte klávesu s číslicí výběru pak stiskněte "Enter""
027 - Pokud je nastavena hodnota proměnné "Key" zruš tuto proměnnou (Je náhradou za "If defined" tato funkce vyžaduje zapnuté rozšířené funkce příkazového řádku)(Je potřebné při návratu z chybového hlášení aby se odstranila chybně zadaná hodnota jinak pokud by došlo pouze ke stisku klávesy "Enter" by zůstala nastavená předchozí chybná hodnota proměnné "Key")
028 - Pokud je nastavena hodnota proměnné "JdiNa" zruš tuto proměnnou (Proměnná již není potřeba pokud nedojde k dalšímu chybnému zadání hodnoty proměnné "Key" a tedy k další chybové hlášce)
029 - Po stisku klávesy "Enter" nastav hodnotu proměnné "Key" na hodnotu zadanou z klávesnioce
030 - Pokud je hodnota proměnné "Key" rovna jedné vykonej postupně příkazy uzavřené v kulatých závorkách... Počátek příkazů (
031 - Okamžitě vypni počítač
032 - Ukonči chod dávky
033 - ) Konec příkazů v závorkách
034 - Pokud je hodnota proměnné "Key" rovna dvěma vykonej postupně příkazy uzavřené v kulatých závorkách... Počátek příkazů (
035 - Okamžitě restartuj počítač
036 - Ukonči chod dávky
037 - ) Konec příkazů v závorkách
039 - Pokud je hodnota proměnné "Key" rovna třem vykonej postupně příkazy uzavřené v kulatých závorkách... Počátek příkazů (
040 - Spust %windir%\system32\rundll32.exe PowrProf.dll SetSuspendState (U příkazu Start je důležité dodržet tvar start "" protože jako první je v uvozovkách očekáván titulek okna pokud tvar nedodržíte bude se vám v některých případech místo požadovaného souboru spouštět nové okno CMD s názvem požadovaného souboru. V některých případech lze příkaz Start nahradit příkazem Call)
041 - Ukonči chod dávky
042 - ) Konec příkazů v závorkách
043 - Pokud je hodnota proměnné "Key" rovna čtyřem vykonej postupně příkazy uzavřené v kulatých závorkách... Počátek příkazů (
044 - Odhlaš mne z účtu
045 - Ukonči chod dávky
045 - ) Konec příkazů v závorkách
046 - Pokud je hodnota proměnné "Key" rovna devíti ukonči chod dávky
047 - Pokud je hodnota proměnné "Key" rovna nule vykonej postupně příkazy uzavřené v kulatých závorkách... Počátek příkazů (
048 - Odvolej spuštěný příkaz "shutdown"
049 - Ukonči chod dávky
050 - ) Konec příkazů v závorkách
051 - Vytvoř smyčku a v ní postupně počítej po jedné tak aby hodnota proměnné "I" postupně nabývala od pěti do osmi. Pokud se hodnota proměnné "I" rovná hodnotě proměnné "Key" přejdi do části dávky "Mnu2"
052 - Nastav hodnotu proměnné "JdiNa" na "Mnu1"
053 - Přejdi do části dávky "ChybnaKlavesa"
054 - (prázdný řádek nijak nenaruší funkci dávky ale pro pisatele dávky ji udělá o něco přehlednější)
055 - Počátek části dávky "Mnu2"
056 - Vymaž obrazovku
057 - Napiš na obrazovku prázdný řádek
058 - Napiš na obrazovku "Vyverte čas akce:"
059 - Napiš na obrazovku "    1 - Akce za 15 minut"
060 - Napiš na obrazovku "    2 - Akce za 30 minut"
061 - Napiš na obrazovku "    3 - Akce za 45 minut"
062 - Napiš na obrazovku "    4 - Akce za 1 hodinu"
063 - Napiš na obrazovku "    5 - Akce za 1 hodinu 30 minut"
064 - Napiš na obrazovku "    6 - Akce za 2 hodiny"
065 - Napiš na obrazovku "    7 - Akce za 2 hodiny 30 minut"
066 - Napiš na obrazovku "    8 - Zadat vlastní čas"
067 - Napiš na obrazovku "    9 - Nic neprovádět - Storno"
068 - Napiš na obrazovku prázdný řádek
069 - Napiš na obrazovku "Stiskněte klávesu s číslicí výběru pak stiskněte "Enter""
070 - Pokud je nastavena hodnota proměnné "Key1" zruš tuto proměnnou (Je náhradou za "If defined" tato funkce vyžaduje zapnuté rozšířené funkce příkazového řádku)(Je potřebné při návratu z chybového hlášení aby se odstranila chybně zadaná hodnota jinak pokud by došlo pouze ke stisku klávesy "Enter" by zůstala nastavená předchozí chybná hodnota proměnné "Key1")
071 - Pokud je nastavena hodnota proměnné "JdiNa" zruš tuto proměnnou (Proměnná již není potřeba pokud nedojde k dalšímu chybnému zadání hodnoty proměnné "Key1" a tedy k další chybové hlášce)
072 - Po stisku klávesy "Enter" nastav hodnotu proměnné "Key1" na hodnotu zadanou z klávesnioce, před kurzor napiš "Váš výběr: "
073 - Pokud je hodnota proměnné "Key1" rovna osmi přejdi do části dávky "ZadatCas"
074 - Pokud je hodnota proměnné "Key1" rovna devíti ukonči dávku
075 - Vytvoř smyčku a v ní postupně počítej po jedné tak aby hodnota proměnné "I" postupně nabývala od jedné do sedmi. Pokud se hodnota proměnné "I" rovná hodnotě proměnné "Key1" vykonej postupně příkazy uzavřené v kulatých závorkách... Počátek příkazů (
076 - Pokud se hodnota proměnné "Key1" rovná jedné nastav proměnnou čas na hodnotu 900
077 - Pokud se hodnota proměnné "Key1" rovná dvěma nastav proměnnou čas na hodnotu 1800
078 - Pokud se hodnota proměnné "Key1" rovná třem nastav proměnnou čas na hodnotu 2700
079 - Pokud se hodnota proměnné "Key1" rovná čtyřem nastav proměnnou čas na hodnotu 3600
080 - Pokud se hodnota proměnné "Key1" rovná pěti nastav proměnnou čas na hodnotu 5400
081 - Pokud se hodnota proměnné "Key1" rovná šesti nastav proměnnou čas na hodnotu 7200
082 - Pokud se hodnota proměnné "Key1" rovná sedmi nastav proměnnou čas na hodnotu 9000
083 - ) Konec příkazů v závorkách
084 - Počátek části dávky "Spustit"
085 - Pokud je definována proměnná čas a hodnota proměnné "Key" je rovna pěti vykonej postupně příkazy uvedené v kulatých závorkách ... Počátek příkazů (
086 - Vypni počítač po uplynutí času který je uveden v proměnné "Cas" Do okna vypínání uveď titulek "Probihá vypnuti PC vyvolane davkou Ukoncit cinnost. Odvolani provedete volbou v davce po jejim opetovnem spusteni"
087 - Ukonči chod dávky
088 - )  Konec příkazů v závorkách
089 - Pokud je definována proměnná čas a hodnota proměnné "Key" je rovna šesti vykonej postupně příkazy uvedené v kulatých závorkách ... Počátek příkazů (
090 - Restartuj počítač po uplynutí času který je uveden v proměnné "Cas" Do okna vypínání uveď titulek "Probihá Restart PC vyvolany davkou Ukoncit cinnost Odvolani provedete volbou v davce po jejim opetovnem spusteni"
091 - Ukonči chod dávky
092 - ) Konec příkazů v závorkách
093 - Pokud je definována proměnná čas a hodnota proměnné "Key" je rovna sedmi vykonej postupně příkazy uvedené v kulatých závorkách ... Počátek příkazů (
094 - Napiš na obrazovku prázdný řádek
095 - Napiš na obrazovku "Probíhá odpočet k uspání PC z HODNOTA PROMĚNNÉ Cas sekund"
096 - Napiš na obrazovku prázdný řádek
097 - Napiš na obrazovku " Odvolání provedete uzavřením okna dávky"
098 - Testuj ozvěnu lokálního hostitele v počtu žádostí uvedených v proměnné Cas a potlač zobrazení výsledků (Náhrada DOS příkazu Choice který čeká určitou dobu a pak provede příkaz pod Windows nic takového není. Příkaz Shutdown mi při testování odmítal provést odhlášení s časovým zpožděním)
099 - Spust %windir%\system32\rundll32.exe PowrProf.dll SetSuspendState (U příkazu Start je důležité dodržet tvar start "" protože jako první je v uvozovkách očekáván titulek okna pokud tvar nedodržíte bude se vám v některých případech místo požadovaného souboru spouštět nové okno CMD s názvem požadovaného souboru. V některých případech lze příkaz Start nahradit příkazem Call)
100 - Ukonči chod dávky
101 - ) Konec příkazů v závorkách
102 - Pokud je definována proměnná čas a hodnota proměnné "Key" je rovna osmi vykonej postupně příkazy uvedené v kulatých závorkách ... Počátek příkazů (
103 - Napiš na obrazovku prázdný řádek
104 - Napiš na obrazovku "Probíhá odpočet k uspání PC z HODNOTA PROMĚNNÉ Cas sekund"
105 - Napiš na obrazovku prázdný řádek
106 - Napiš na obrazovku " Odvolání provedete uzavřením okna dávky"
107 - Testuj ozvěnu lokálního hostitele v počtu žádostí uvedených v proměnné Cas a potlač zobrazení výsledků (Náhrada DOS příkazu Choice který čeká určitou dobu a pak provede příkaz pod Windows nic takového není. Příkaz Shutdown mi při testování odmítal provést odhlášení s časovým zpožděním)
108 - Odhlaš mne jako uživatele Windows
109 - Ukonči chod dávky
110 - ) Konec příkazů v závorkách
111 - Nastav hodnotu proměnné "JdiNa" na "Mnu2"
112 - Přejdi do části dávky "ChybnaKlavesa"
113 - (prázdný řádek nijak nenaruší funkci dávky ale pro pisatele dávky ji udělá o něco přehlednější)
114 - Počátek části dávky "ZadatCas"
115 - Vymaž obrazovku
116 - Napiš na obrazovku prázdný řádek
117 - Napiš na obrazovku "  Prosím na následující řádek do pozice kurzoru zadejte čas ve formátu ..."
118 - Napiš na obrazovku prázdný řádek
119 - Napiš na obrazovku "  hh:mm:ss"
120 - Pokud je definována hodnota proměnné "Cas" vymaž tuto hodnotu
121 - Pokud je definována hodnota proměnné "JdiNa" vymaž tuto hodnotu
122 - Napiš na obrazovku prázdný řádek
123 - Po stisku klávesy "Enter" nastav hodnotu proměnné "Cas" na hodnotu zadanou z klávesnioce, před kurzor napiš "Zadejte čas:"
124 - Pokud je definována proměnná čas vykonej postupně příkazy uvedené v kulatých závorkách ... Počátek příkazů (
125 - Pokud existuje soubor "TMP.TXT" vymaž jej
126 - Nastav hodnotu proměnné "JdiNa" na "ZadatCas"
127 - Přejdi do části dávky "ChybnaKlavesa"
128 - ) Konec příkazů v závorkách
129 - Zapiš hodnotu proměnné "Cas" na první řádek souboru "TMP.TXT"
130 - Přečti řádek souboru "TMP.TXT"  textem naplň "tokeny" 1 až 3 (proměnné A;B;C) za oddělovač jednotlivých výrazů považuj dvojtečku Pak vykonej postupně příkazy uvedené v kulatých závorkách ... Počátek příkazů (
131 - Nastav hodnotu proměnné "Hodiny" na hodnotu proměnné "A"
132 - Nastav hodnotu proměnné "Minuty" na hodnotu proměnné "B"
133 - Nastav hodnotu proměnné "Sekundy" na hodnotu proměnné "C"
134 - ) Konec příkazů v závorkách
135 - Vymaž soubor "TMP.TXT"
136 - Pokud je první znak hodnoty proměnné "Hodiny" nula (01; 02; .. 09) Vytvoř smyčku a počítej po jedné tak aby hodnota proměnné "I" nabývala postupně hodnoty jedna až devět. Pokud se rovná hodnota druhého znaku proměnné "Hodiny" hodnotě proměnné "I" přepiš hodnotu proměnné "Hodiny" na hodnotu proměnné "I" (příkazy převedou dvojmístné číslo pokud začíná nulou na jednomístné)
137 - Pokud je hodnota proměnné "Hodiny" rovna nule přejdi do části dávky "CtrlMinut"
138 - Nastav hodnotu proměnné "Cas" na nula
139 - Vytvoř smyčku a počítej po jedné tak aby proměnná "I" nabývala postupně hodnoty nula až 23 Pokud se hodnota proměnné "I" rovná hodnotě proměnné "Hodiny" nastav proměnnou "Cas" na hodnotu jedna (operace provádí kontrolu správného zadání číslic v řádu hodin)
140 - Pokud se hodnota proměnné "Cas" rovná nule proveď postupně příkazy uvedené v kulatých závorkách ... Počátek příkazů (
141 - Vymaž obrazovku
142 - Napiš na obrazovku prázdný řádek
143 - Napiš na obrazovku "  Vyskytla se chyba v zadání počtu hodin! 23 je maximum!"
144 - Napiš na obrazovku prázdný řádek
145 - Napiš na obrazovku "  Vámi zadaný počet hodin.. HODNOTA PROMĚNNÉ HODINY
146 - Napiš na obrazovku prázdný řádek
147 - Vyčkej na stisk libovolné klávesy
148 - Přejdi do části dávky "ZadatCas"
149 - ) Konec příkazů v závorkách
150 - Počátek části dávky "CtrlMinut"
151 - Pokud je první znak hodnoty proměnné "Minuty" nula (01; 02; .. 09) Vytvoř smyčku a počítej po jedné tak aby hodnota proměnné "I" nabývala postupně hodnoty jedna až devět. Pokud se rovná hodnota druhého znaku proměnné "Minuty" hodnotě proměnné "I" přepiš hodnotu proměnné "Minuty" na hodnotu proměnné "I" (příkazy převedou dvojmístné číslo pokud začíná nulou na jednomístné)
152 - Pokud je hodnota proměnné "Minuty" rovna nule přejdi do části dávky "CtrlSekund"
153 - Nastav hodnotu proměnné "Cas" na číslici nula
154 -  Vytvoř smyčku a počítej po jedné tak aby proměnná "I" nabývala postupně hodnoty nula až 59 Pokud se hodnota proměnné "I" rovná hodnotě proměnné "Minuty" nastav proměnnou "Cas" na hodnotu jedna (operace provádí kontrolu správného zadání číslic v řádu Minut)
155 - Pokud se hodnota proměnné "Cas" rovná nule proveď postupně příkazy uvedené v kulatých závorkách ... Počátek příkazů (
156 - Vymaž obrazovku
157 - Napiš na obrazovku prázdný řádek
158 - Napiš na obrazovku "  Vyskytla se chyba v zadání počtu Minut! 59 je maximum!"
159 - Napiš na obrazovku prázdný řádek
160 - Napiš na obrazovku "  Vámi zadaný počet minut.. HODNOTA PROMĚNNÉ "Minuty"
161 - Napiš na obrazovku prázdný řádek
162 - Vyčkej na stisk libovolné klávesy
163 - Přejdi do části dávky "ZadatCas"
164 - ) Konec příkazů v závorkách
165 - Počátek části dávky "CtrlSekund"
166 - Pokud je první znak hodnoty proměnné "Sekundy" nula (01; 02; .. 09) Vytvoř smyčku a počítej po jedné tak aby hodnota proměnné "I" nabývala postupně hodnoty jedna až devět. Pokud se rovná hodnota druhého znaku proměnné "Sekundy" hodnotě proměnné "I" přepiš hodnotu proměnné "Sekundy" na hodnotu proměnné "I" (příkazy převedou dvojmístné číslo pokud začíná nulou na jednomístné)
167 - Pokud je hodnota proměnné "Sekundy" rovna číslici nula přejdi do části dávky "Vypocet"
168 - Nastav hodnotu proměnné "Cas" na číslici nula
169 - Vytvoř smyčku a počítej po jedné tak aby proměnná "I" nabývala postupně hodnoty nula až 59 Pokud se hodnota proměnné "I" rovná hodnotě proměnné "Sekundy" nastav proměnnou "Cas" na hodnotu jedna (operace provádí kontrolu správného zadání číslic v řádu Sekund)
170 - Pokud se hodnota proměnné "Cas" rovná nule proveď postupně příkazy uvedené v kulatých závorkách ... Počátek příkazů (
171 - Vymaž obrazovku
172 - Napiš na obrazovku prázdný řádek
173 - Napiš na obrazovku "  Vyskytla se chyba v zadání počtu sekund! 59 je maximum!"
174 - Napiš na obrazovku prázdný řádek
175 - Napiš na obrazovku "  Vámi zadaný počet sekund.. HODNOTA PROMĚNNÉ "Sekundy"
176 - Napiš na obrazovku prázdný řádek
177 - Vyčkej na stisk libovolné klávesy
178 - Přejdi do části dávky "ZadatCas"
179 - ) Konec příkazů v závorkách
180 - Počátek části dávky "Vypocet"
181 - Proveď výpočet ... Hodnota proměnné "Hodiny" násobeno 3600 a následně změň hodnotu proměnné "Hodiny"
182 - Proveď výpočet ... Hodnota proměnné "Minuty" násobeno 60-ti a následně změň hodnotu proměnné "Minuty"
183 - Proveď výpočet ... Hodnota proměnné "Hodiny" plus Hodnota proměnné "Minuty" plus hodnota proměnné "Sekundy" a následně změň hodnotu proměnné "Cas"
184 - Přejdi do části dávky "Spustit"
185 - (prázdný řádek nijak nenaruší funkci dávky ale pro pisatele dávky ji udělá o něco přehlednější)
186 - Počátek části dávky "ChybnaKlavesa"
187 - Vymaž obrazovku
188 - Napiš na obrazovku prázdný řádek
189 - Napiš na obrazovku   Byla stisknuta klávesa mimo povolený výběr!
190 - Napiš na obrazovku prázdný řádek
191 - Pokud je hodnota proměnné "JdiNa" rovna "Mnu1" Napiš na obrazovku "  Vámi stisknutá klávesa HODNOTA PROMĚNNÉ "Key"
192 - Pokud je hodnota proměnné "JdiNa" rovna "Mnu2" Napiš na obrazovku "  Vámi stisknutá klávesa HODNOTA PROMĚNNÉ "Key1"
193 - Pokud není definována hodnota proměnné "Cas" Napiš na obrazovku "  Nebyl zadán čas!"
194 - Napiš na obrazovku prázdný řádek
195 - Vyčkej na stisk libovolné klávesy
196 - Přejdi do části dávky kterou udává hodnota proměnné "JdiNa"

Spustitelný soubor dávky ke stažení stačí "rozbalit" dekomprimovat a poklikat na něj

UkoncitCinnost.zip

Dávka byla testována ve Win 7 a Win XP viz http://www.pc-help.cz/viewtopic.php?p=428732#p428732

Poznámka: Třetí verze již nese název "Minutka" a je jí zde věnováno samostatné téma ZDE
Nemáte oprávnění prohlížet přiložené soubory.
Naposledy upravil(a) Jan Pašek dne 10 bře 2011 11:42, celkem upraveno 1 x.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Příkazový řádek.
    od Sandalfon » 28 dub 2017 21:52 » v Windows 10, 8, 7, Vista, XP…
    7
    434
    od X
    29 dub 2017 21:48
  • duplikované soubory
    od ShiroiKitsune » 17 zář 2017 10:33 » v Vše ostatní (sw)
    2
    274
    od zeus
    18 zář 2017 10:18
  • Soubory .dat k videu
    od Moony » 08 led 2017 20:46 » v Vše ostatní (sw)
    0
    160
    od Moony
    08 led 2017 20:46
  • Poškozené JPEG soubory
    od Funstorm007 » 13 led 2017 20:03 » v Vše ostatní (sw)
    7
    333
    od Funstorm007
    14 led 2017 17:26
  • Skopírovat instalační soubory.
    od emba5 » 14 črc 2017 14:36 » v Windows 10, 8, 7, Vista, XP…
    0
    175
    od emba5
    14 črc 2017 14:36

Zpět na “Software články”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 0 hostů