I PowerShell är en variabel en namngiven lagringsplats för data eller information som du kan använda i dina kommandon eller skript. Variabler används för att lagra och hantera värden som kan vara text, siffror, objekt eller andra typer av data. Att använda variabler gör det möjligt att spara, återanvända och manipulera data på ett flexibelt sätt.
Datatyper i PowerShell
En datatyp anger för datorn hur information ska lagras och behandlas i minnet. Varje datatyp tar upp en viss mängd minnesutrymme och har ett specifikt intervall av värden. Att välja rätt datatyp gör programmet mer effektivt och minskar risken för fel.
Här är några av de mest kända datatyperna:
Heltal (Integer)
| Datatyp | Bitstorlek | Min-värde | Max-värde |
| byte | 8 | –128 | 127 |
| short | 16 | –32 768 | 32 767 |
| int | 32 | –2 147 483 648 | 2 147 483 647 |
| long | 64 | ≈ –9 * 1018 | ≈ 9 * 1018 |
Decimaltal (Floating-point)
| Datatyp | Bitstorlek | Min-värde | Max-värde |
| float | 32 | ≈ –3.4 * 1018 | ≈ 3.4 * 1018 |
| double | 64 | ≈ –1.7 * 10308 | ≈ 1.7 * 10308 |
Boolean datatyp
- True som kan vara en etta
- False som kan vara en nolla
Tecken och text
- char (character) används för att lagra ett enskilt tecken, t.ex. ’a’, ’A’, ’b’, ’B’ eller ’!’. Varje tecken lagras vanligtvis med 2 byte i minnet.
- string används för att lagra flera flera tecken, t.ex. ett ord eller en hel mening. På svenska kallas det en sträng.
Exempel:
$bokstav = 'A' $text = "Hej, PowerShell!"
- $bokstav = ’A’
- Här skapas en variabel med namnet $bokstav.
- Tecknet $ används alltid framför ett variabelnamn i PowerShell.
- Variabeln tilldelas värdet ’A’, alltså ett enda tecken inom enkla citattecken (’ ’).
- Eftersom det bara är ett tecken, räknas datatypen som char (character).
- $text = ”Hej, PowerShell!”
- Här skapas en annan variabel, $text
- Den tilldelas värdet ”Hej, PowerShell!”, vilket är en sträng (text med flera tecken).
- Eftersom värdet står inom dubbla citattecken (” ”), kan PowerShell tolka variabler eller specialtecken inuti strängen.
Specialtecken i strängar
Precis som i andra programmeringsspråk finns styrtecken som används för formatering:
- `n – Representerar en ny rad (newline).
- `t – Representerar en tabulator.
- `b – Representerar ett backspace-tecken.
- `” – Representerar en dubbel citat.
- `’ – Representerar en enkelt citat.
Variabler i PowerShell
För att skapa en variabel använder du $-tecknet följt av ett namn och tilldelningsoperatorn =.
Exempel:
$myVariable = "Hello, PowerShell learners" Write-Host $myVariable
För att lista alla variabler i systemet:
Get-Variable
För att endast visa de inbyggda (globala) variablerna:
Get-Variable -Scope Global
Dynamisk typning
PowerShell är dynamiskt typat, vilket betyder att du inte behöver ange datatypen när du skapar en variabel. Datatypen bestäms automatiskt utifrån det värde du tilldelar.
Exempel i PowerShell:
$tal1 = 42 # Heltal $tal1 = "Hej" # Nu blir samma variabel en sträng (skrivs över 42)
I många andra språk, som C eller Java, måste du deklarera datatypen:
int tal1 = 42; // Heltal deklarerat som int
Inbyggda variabler
PowerShell innehåller många fördefinierade variabler som ger information om systemet och miljön.
- $PSVersionTable: visar information om PowerShell-versionen.
- $PWD: anger aktuell arbetskatalog (motsvarar Get-Location).
- $Error: innehåller senaste felmeddelandet.
- $Host: visar information om PowerShell-värdet.
Miljövariabler
Miljövariabler (environment variables) används av operativsystemet och program för att lagra information om systemets konfiguration. De är globala och tillgängliga för alla processer.
I PowerShell refererar du till dem med prefixet $env:
Exempel:
$env:USERNAME # Namnet på den aktuella användaren $env:COMPUTERNAME # Datorns namn $env:TEMP # Sökväg till temporär mapp $env:PATH # Lista över sökvägar för körbara filer $env:HOME # Användarens hemkatalog
Vanliga datatyper i PowerShell
PowerShell stödjer ett brett spektrum av datatyper. Här är några exempel:
Strängar (string)
$message = "This is a string." $name = 'Chalo Reyes' Write-Host $name
Heltal (int, long, short, byte)
$age = 30 Write-Host $age
Flyttal (float, double)
$myFloat = 3.14 $myDouble = 123.456 Write-Host $myDouble
Booleska värden
$isEnabled = $true $hasPermission = $false Write-Host "Enabled: $isEnabled" Write-Host "Has Permission: $hasPermission"
Arrayer (array)
$myArray = @(1, 2, 3, 4, 5) Write-Host "Det andra elementet är: $($myArray[1])" $myArray[2] = 99 Write-Host $myArray
Objekt (object) – PowerShell är objektorienterat, vilket innebär att många kommandon returnerar objekt, inte bara text.
$person = [PSCustomObject]@{ Name = "John Doe" Age = 30 City = "Example City" } Write-Host "Namn: $($person.Name)" Write-Host "Ålder: $($person.Age)" Write-Host "Stad: $($person.City)"
Kontrollera datatypen
För att se vilken datatyp en variabel innehåller, använd metoden GetType():
$name.GetType() $myFloat.GetType() $myArray.GetType()