Variabler och Datatyper


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()