Villkorssatser & loopar

I batch-skript kan du använda villkorssatser för att styra exekveringen av kommandon baserat på vissa villkor. De vanligaste kommandona för detta är if och else.

Grundläggande if-struktur

Syntaxen för ett enkelt if-påstående ser ut så här:

if CONDITION (kommandon att exekvera om villkoret är sant)

Exempel 1: Kontrollera om en fil existerar

@echo off
if exist ”C:\test.txt” (
echo Filen test.txt finns.
) else (
echo Filen test.txt hittades inte.
)
pause

  • if exist kontrollerar om en fil eller mapp existerar.
  • else körs om villkoret inte är uppfyllt.

Exempel 2: Kontrollera en miljövariabel

@echo off
set var=10
if %var%==10 (
echo Variabeln är lika med 10
) else (
echo Variabeln är inte lika med 10
)
pause

I detta fall kontrolleras om variabeln var är lika med 10.

Loopar i Batch-skript

Loopar används för att köra ett kommando flera gånger. I batch-skript är den vanligaste looptypen for.

FOR

Denna loop har flera användbara växlingar eller tillägg. Dessa tillägg ändrar eller specificerar hur ett kommando ska fungera. I batch-skript används dessa efter kommandot, ofta i form av en snedstreck följt av en bokstav, till exempel:

  • for /L: Gör att for-loopen räknar från ett startvärde till ett slutvärde.
  • for /F: Gör att for-loopen läser data från filer, kommandon eller strängar.
  • for /R: Gör att for-loopen söker rekursivt i mappar och undermappar.
  • for /D: Används för att iterera genom undermappar i en viss mapp.

Grundläggande for-struktur

Syntaxen för en enkel for-loop ser ut så här:

for %%variabel in (lista) do (
kommandon att exekvera
)

  • %%variabel är en variabel som används för att iterera genom varje element i listan.
  • (lista) är en lista med värden som loopen ska iterera över.

Exempel 3: Loop genom en lista av nummer

@echo off
for %%i in (1 2 3 4 5) do (
echo Talet är: %%i
)
pause

Detta exempel skriver ut varje tal i listan.

Exempel 4: Loop genom alla filer i en mapp

@echo off
for %%f in (C:\temp\*) do (
echo Filen: %%f
)
pause

Detta skript loopar igenom alla filer i mappen C:\temp och skriver ut deras namn.

Exempel 5: Räkna från 1 till 5 med en numerisk loop

@echo off
for /L %%i in (1,1,5) do (
echo Talet är: %%i
)
pause

/L används för att skapa en loop där du specificerar ett startvärde, ett steg och ett slutvärde. I detta fall börjar loopen på 1 och räknar upp med 1 till 5.

Övningar

  1. Skapa ett batch-script som kontrollerar om en fil finns, och om den gör det, skriver ut ”Filen finns”, annars ”Filen saknas”.
  2. Skriv ett batch-script som loopar genom en lista med färger (t.ex., röd, blå, grön) och skriver ut varje färg.
  3. Skriv ett batch-skript som loopar genom en lista med färger och skriver ut både färgnamnet och dess hexadecimala kod.
    • Färger att inkludera: röd, blå, grön
    • Hexadecimala koder:
      • Röd: #FF0000
      • Blå: #0000FF
      • Grön: #008000
  4. Skapa ett script som räknar upp från 1 till 10 och skriver ut varje tal.
  5. Skapa ett script som visar datorns IP-adressering