Ovládáme (nejen) windows pomocí visual basic script 3. díl

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23622
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline
Kontakt:

Ovládáme (nejen) windows pomocí visual basic script 3. díl

Příspěvekod ITCrowd » 16 čer 2021 11:54

Větvení programu na základě podmínek, cykly
Základní příkaz pro vyhodnocení podmínek je If .. Then .. Else. To už známe - byl použit v prvním díle.
Další možnost větvení je pro vícero hodnot. Select-Case
Příklad: Mějme vstupní test pro uchazeče o zaměstnání. Dejme tomu, že test má 5 úrovní hodnocení (A až E) a my máme zájem jen o první dvě. Zároveň chceme, aby ti, co mají hodnocení "B" absolvovali vstupní pohovor. Uchazeči s "A" budou přijati bez pohovoru.
Pomocí If .. Then:

Kód: Vybrat vše

znamka = Inputbox("Zadej výsledek testu", "Příklad")
If znamka = "A" Then WScript.Echo "Jste přijat!"
If znamka = "B" Then WScript.Echo "Domluvte si pohovor."
If (znamka <> "A") And (znamka <> "B") Then WScript.Echo "Je nám líto, neprošel jste."
Pomocí Select-Case

Kód: Vybrat vše

znamka = Inputbox("Zadej výsledek testu", "Příklad")
Select Case znamka
  Case "A"
    WScript.Echo "Jste přijat!"
  Case "B"
    WScript.Echo "Domluvte si pohovor."
  Case Else
    WScript.Echo "Je nám líto, neprošel jste."
End Select

Všimněte si:
Operátoru And u podmínek If .. Then. Ten říká, že obě podmínky musí platit současně.

Cykly:
Používáme tam, kde je třeba několkrát opakovat sadu příkazů uvnitř cyklu. Cykly se můžou být:
- s pevným počtem opakování: For .. Next
- dokud kolekce (pole) obsahuje objekt (proměnnou): For .. Each .. In .. Next (použito u kolekce tiskáren ve druhém díle)
- dokud je splněna podmínka: Do .. While .. Loop
- dokud není splněna podmínka: Do .. Until .. Loop

Příklad For .. Next:

Kód: Vybrat vše

text = ". smyčka"
For i = 1 To 5 Step 1
vypis = vypis & i & text & vbCrLf
Next
WScript.Echo vypis
ForNext.png
For .. Next
ForNext.png (2.29 KiB) Zobrazeno 1000 x

Všimněte si: Klíčové slovo Step umožňuje zadat krok. Pokud je krok o +1, není třeba toto slovo zadávat.

Příklad Do .. Until:

Kód: Vybrat vše

text = ". smyčka"
i = 1
Do Until i > 5
vypis = vypis & i & text & vbCrLf
i = i + 1
Loop
WScript.Echo vypis
Tento kód udělá přesně to, co předchozí For .. Next. Museli jsme ale zajistit přičítání i o +1.

Nač si dát pozor?
- nekonečná smyčka. Nejčastěji u Do .. Loop - špatně zvolená podmínka, která se nikdy nesplní. V tomto případě se nedá udělat nic jiného, než "sestřelit" interpreter wscript.exe pomocí správce úloh.
- počet opakování se liší - opět u Do .. Loop - je rozdíl, zda podmínka je uvedena na začátku cyklu Do Until .. Loop, nebo na konci cyklu Do .. Loop Until. V prvním případě, pokud je splněna podmínka, se příkazy v cyklu neprovedou vůbec. V druhém, pokud je splněna podmínka, se provedou 1x.

Příklad - vytvoření adresářové struktury: Potřebujeme vytvořit adresářovou strukturu pro ukládání důležitých souborů. Přičemž požadujeme, aby adresáře definovaly rok a měsíc. Zároveň kvůli řazení požadujeme, aby u prvních devíti měsíců byla doplněna nula. A požadujeme, aby tam, kde už je struktura vytvořena, skript nic nedělal.

Kód: Vybrat vše

Set fso = CreateObject("Scripting.FilesystemObject")

For i = 1 To 12
' vytvoreni nazvu slozky
Mesic = i
If Mesic < 10 Then Mesic = "0" & Mesic
cesta = "C:\testy\2021-" & Mesic & "\"
'WScript.Echo cesta
If (Not fso.FolderExists(cesta)) Then fso.CreateFolder(cesta)
Next

Set fso = Nothing

Všimněte si:
- Pro přístup k souborům a složkám je třeba definovat objekt Set fso = CreateObject("Scripting.FilesystemObject")
- Přidání nuly je řešeno pomocí If .. Then If Mesic < 10 Then Mesic = "0" & Mesic
- Podmínka na existenci složky - klíčové slovo Not. Říká, že pokud daná složka neexistuje, vytvoř ji. If (Not fso.FolderExists(cesta)) Then fso.CreateFolder(cesta)
Výsledek je pak tento:
adresare.png
Adresáře


Tím jsme si prošli méně zaživnými základy. V příštím díle se podíváme na metody přístupu k souborům a složkám a spouštění programů pomocí skriptu.

Ovládáme (nejen) windows pomocí visual basic script 1. díl
Ovládáme (nejen) windows pomocí visual basic script 2. díl
Ovládáme (nejen) windows pomocí visual basic script 3. díl
Ovládáme (nejen) windows pomocí visual basic script 4. díl
Ovládáme (nejen) windows pomocí visual basic script 5. díl
Ovládáme (nejen) windows pomocí visual basic script 6. díl
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Reklama
  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Windows 11 nelze zrušit přihlášení pomocí hesla PIN)
    od nulka » 17 srp 2023 11:08 » v Windows 11, 10, 8...
    9
    3836
    od nulka Zobrazit poslední příspěvek
    17 srp 2023 16:02
  • Mazání souborů pomocí Scriptu
    od luko02420 » 04 kvě 2024 07:32 » v Vše ostatní (sw)
    25
    1741
    od luko02420 Zobrazit poslední příspěvek
    09 kvě 2024 10:12
  • Teamviewer - jak ovládat gps (pc) pomocí vzdálené podpory
    od Antonín » 27 bře 2024 14:35 » v Vše ostatní (sw)
    3
    2015
    od Antonín Zobrazit poslední příspěvek
    15 dub 2024 13:06
  • TAP-Windows 9.21.2 - error Příloha(y)
    od ski1961 » 11 kvě 2024 15:20 » v Windows 11, 10, 8...
    2
    523
    od faraon Zobrazit poslední příspěvek
    12 kvě 2024 09:00
  • Windows 11 a Bitlocker
    od AnnaLee123 » 05 úno 2024 10:45 » v Windows 11, 10, 8...
    3
    1225
    od petr22 Zobrazit poslední příspěvek
    05 úno 2024 13:24

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host