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
Guru Level 13
Příspěvky: 21719
Registrován: březen 10
Pohlaví: Muž

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

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


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
Nemáte oprávnění prohlížet přiložené soubory.
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
  • Ovládáme (nejen) windows pomocí visual basic script 7. díl
    od ITCrowd » 18 črc 2021 11:22 » v Programování a tvorba webu
    0
    293
    od ITCrowd
    18 črc 2021 11:22
  • Ovládáme (nejen) windows pomocí visual basic script 1. díl
    od ITCrowd » 02 čer 2021 23:05 » v Programování a tvorba webu
    9
    2095
    od Prophet
    17 čer 2021 20:46
  • Ovládáme (nejen) windows pomocí visual basic script 2. díl
    od ITCrowd » 08 čer 2021 10:32 » v Programování a tvorba webu
    0
    630
    od ITCrowd
    08 čer 2021 10:32
  • Ovládáme (nejen) windows pomocí visual basic script 5. díl
    od ITCrowd » 03 črc 2021 09:32 » v Programování a tvorba webu
    0
    296
    od ITCrowd
    03 črc 2021 09:32
  • Ovládáme (nejen) windows pomocí visual basic script 4. díl
    od ITCrowd » 24 čer 2021 10:11 » v Programování a tvorba webu
    0
    369
    od ITCrowd
    24 čer 2021 10:11

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

Kdo je online

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