Tildel værdier og typer til variabler i Windows PowerShell-scripts

Fuldført

Når du arbejder med variabelværdier, skal du bruge de matematiske standardoperatorer, du allerede kender, f.eks. equal (=), plus (+) og minus ().

Hvis du vil tildele en værdi til en variabel, skal du bruge operatoren equal (=). For eksempel:

$num1 = 10
$logFile = "C:\Logs\log.txt"

Du kan også tildele en værdi til en variabel ved hjælp af en kommando, der evalueres. Resultatet af kommandoen placeres i variablen. For eksempel:

$user = Get-ADUser Administrator
$service = Get-Service W32Time

Seddel

Hvis en kommando returnerer flere resultater, bliver variablen en matrix, der indeholder flere værdier. Du får mere at vide om matrixer senere i dette modul.

Du kan få vist værdien af en variabel ved at angive variabelnavnet og derefter trykke på tasten Enter. Du kan også vise værdien som en del af en kommando ved at bruge Write-Host. For eksempel:

$user
Write-Host "The location of the log file is $logFile"

Seddel

Når du viser en variabel ved at bruge Write-Host og sætter variabelnavnet i dobbelt citationstegn ("), evalueres den variabel, og dens værdi vises. Hvis du bruger enkeltstående anførselstegn ('), bliver den variabel ikke evalueret, hvilket resulterer i, at dens navn vises i stedet.

Seddel

Write-Host sender output direkte til konsollen og omgår PowerShell-pipelinen. Output skrevet med Write-Host kan ikke fanges i en variabel eller sendes til en anden kommando. For pipeline-kompatibel output skal du bruge Write-Output eller blot indtaste variabelnavnet på sin egen linje.

Hvis du vil fjerne alle værdier fra en variabel, kan du angive variablen til at være lig med $null. Variablen $null defineres automatisk af PowerShell som ingenting. For eksempel:

$num1 = $null
$str1 = $null

Seddel

For at rydde en variabel kan du også bruge Clear-Variable.

Du kan bruge matematiske operatorer med variabler, som vist i følgende eksempel:

$area = $length * $width
$sum = $num1 + $num2
$path = $folder + $file

Du kan sætte værdien af en variabel ved at bruge cmdlet'en Set-Variable . Når du bruger denne cmdlet, medtager du ikke symbolet $, når du refererer til navnet, som vist i følgende eksempel:

Set-Variable -Name num1 -Value 5

PowerShell understøtter også sammensatte tildelingsoperatorer, der kombinerer en operation med tildeling i ét enkelt trin. $count += 1 svarer f.eks. til $count = $count + 1. Andre sammensatte operatorer inkluderer -=, *=, samt inkrementoperatorerne (++) og decrement (--) operatorerne.

Yderligere læsning: Du kan finde flere oplysninger om tildelingsoperatorer i about_Assignment_Operators.

Tildeling af en type til en variabel

PowerShell tildeler en type til alle variabler. Variabeltypen bestemmer de data, der kan gemmes i den. I de fleste tilfælde bestemmer PowerShell automatisk typen af en variabel under tildelingen af dens værdi. Automatisk tildeling af variabeltypen fungerer godt det meste af tiden. I nogle tilfælde er datatypen dog tvetydig, og du foretrækker måske at angive variabeltypen eksplicit.

Følgende tabel viser de almindelige variabeltyper, der bruges i PowerShell.

Tabel 1: Almindelige variabeltyper brugt i PowerShell

Slags Beskrivelse
Streng En strengvariabel gemmer tekst, der kan indeholde specialtegn. For eksempel "This is a string."
Int En 32-bit heltalsvariabel gemmer et tal uden decimaler. F.eks., 228.
Dobbelt En variabel med flydende tal på 64 bit gemmer et tal, der kan indeholde decimaler. F.eks., 128.45.
DateTime En DateTime-variabel gemmer et datoobjekt, der indeholder en dato og et klokkeslæt. F.eks., January 5, 2022 10:00 AM.
Bool En boolesk variabel kan kun gemme de værdier, der er $true eller $false.

Hvis du ikke tildeler en variabeltype, tildeler PowerShell automatisk en type baseret på den værdi, du tildeler variablen. Når værdien er indeholdt i anførselstegn, fortolkes den generelt som en streng. For eksempel ville PowerShell fortolkes 5 som et heltal, men "5" som en streng.

Du kan tvinge en variabel til kun at acceptere en bestemt type indhold ved at definere typen. Når du definerer typen, forsøger PowerShell at konvertere den værdi, du angiver, til den korrekte type. Hvis PowerShell ikke kan konvertere værdien til den korrekte type, returnerer den en fejl.

Følgende eksempler viser, at variablen $num2 defineres som et 32-bit heltal og variablen $date defineres som DateTime.

[Int]$num2 = "5"
[DateTime]$date = "January 5, 2022 10:00AM"

Du kan gennemgå en variabels type ved at tilføje GetType() metoden til navnet på variablen. For eksempel:

$date.GetType()