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
- Skapa ett batch-script som kontrollerar om en fil finns, och om den gör det, skriver ut ”Filen finns”, annars ”Filen saknas”.
- 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.
- 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
- Röd:
- Färger att inkludera:
- Skapa ett script som räknar upp från 1 till 10 och skriver ut varje tal.
- Skapa ett script som visar datorns IP-adressering