Over variabelen
- 11/09/2020
- 9 minuten om te lezen
-
- S
- s
- q
Korte beschrijving
Beschrijft hoe variabelen waarden opslaan die kunnen worden gebruikt in PowerShell.
Lange beschrijving
U kunt alle soorten waarden opslaan in PowerShell-variabelen. Bewaar bijvoorbeeld de resultaten van opdrachten en bewaar elementen die worden gebruikt in opdrachten en uitdrukkingen, zoals namen, paden, instellingen en waarden.
Een variabele is een geheugeneenheid waarin waarden worden opgeslagen. In PowerShell worden variabelen vertegenwoordigd door tekstreeksen die beginnen met een dollarteken ($
), zoals $a
, $process
, of $my_var
.
Variabelenamen zijn niet hoofdlettergevoelig en kunnen spaties en speciale tekens bevatten. Maar variabelenamen speciale tekens en spaties bevatten zijn moeilijk te gebruiken en moeten worden vermeden. Zie voor meer informatie Variabele namen die speciale tekens bevatten.
Er zijn verschillende soorten variabelen in PowerShell.
-
Door de gebruiker gemaakte variabelen: door de gebruiker gemaakte variabelen worden gemaakt en onderhouden door de gebruiker. Standaard bestaan de variabelen die u op de PowerShell-opdrachtregel maakt alleen als het PowerShell-venster open is. Wanneer het PowerShell-venster is gesloten, zijn de variabelen verwijderd. Om een variabele op te slaan, voegt u deze toe aan uw PowerShell-profiel. U kunt ook variabelen in scripts maken met globaal, script of lokaal bereik.
-
Automatisch va riables: automatische variabelen slaan de status van PowerShell op. Deze variabelen worden gemaakt door PowerShell en PowerShell verandert hun waarden indien nodig om hun nauwkeurigheid te behouden. Gebruikers kunnen de waarde van deze variabelen niet wijzigen. De variabele
$PSHOME
slaat bijvoorbeeld het pad op naar de PowerShell-installatiedirectory.Voor meer informatie, een lijst en voor een beschrijving van de automatische variabelen, zie about_Automatic_Variables.
-
Voorkeurvariabelen: Voorkeurvariabelen slaan gebruikersvoorkeuren op voor PowerShell. Deze variabelen worden gemaakt door PowerShell en worden gevuld met standaardwaarden. Gebruikers kunnen de waarden van deze variabelen. De variabele
$MaximumHistoryCount
bepaalt bijvoorbeeld het maximale aantal vermeldingen in de sessiegeschiedenis.Voor meer informatie, een lijst en een beschrijving van de voorkeursvariabelen, zie about_Preference_Variables.
Werken met variabelen
Om een nieuwe variabele te maken, gebruikt u een toewijzingsinstructie om een waarde aan de variabele toe te kennen. U hoeft de variabele niet te declareren voordat u deze gebruikt. De standaardwaarde van alle variabelen is $null
.
Om een lijst van alle variabelen in uw PowerShell-sessie te krijgen, typt u Get-Variable
. De variabelenamen worden weergegeven zonder het voorafgaande dollarteken ($
) dat wordt gebruikt om naar variabelen te verwijzen.
Bijvoorbeeld:
Variabelen zijn handig om de resultaten van opdrachten op te slaan.
Bijvoorbeeld:
Aan geef de waarde van een variabele weer, typ de variabelenaam, voorafgegaan door een dollar-teken ($
).
Bijvoorbeeld:
Om de waarde te wijzigen van een variabele, wijs dan een nieuwe waarde toe aan de variabele.
De volgende voorbeelden tonen de waarde van de $MyVariable
variabele, wijzigen de waarde van de variabele en tonen vervolgens de nieuwe waarde.
Om de waarde van een variabele te verwijderen, gebruikt u de Clear-Variable
cmdlet of wijzigt u de waarde ue naar $null
.
Om de variabele te verwijderen , gebruik Remove-Variable of Remove-Item.
Typen variabelen
U kunt elk type object in een variabele opslaan, inclusief gehele getallen, strings, arrays en hashtabellen. En objecten die processen, services, eventlogs en computers vertegenwoordigen.
PowerShell-variabelen zijn losjes getypt, wat betekent dat ze niet beperkt zijn tot een bepaald type object. Een enkele variabele kan zelfs een verzameling bevatten, of array, van verschillende typen objecten tegelijkertijd.
Het gegevenstype van een variabele wordt bepaald door de .NET-typen van de waarden van de variabele. Om het objecttype van een variabele te bekijken, gebruik Get- Lid.
Bijvoorbeeld:
U kunt een type-attribuut en cast-notatie gebruiken om ervoor te zorgen dat een variabele alleen specifieke objecttypes of objecten kan bevatten die naar dat type kunnen worden geconverteerd.Als u probeert een waarde van een ander type toe te wijzen, probeert PowerShell de waarde naar het type te converteren. Als het type ‘niet kan worden geconverteerd, mislukt de toewijzingsinstructie.
Om de cast-notatie te gebruiken, voert u een typenaam in, tussen haakjes, vóór de variabele naam (aan de linkerkant van de toewijzingsinstructie). Het volgende voorbeeld maakt een $number
variabele die alleen gehele getallen kan bevatten, een $words
variabele die alleen strings kan bevatten, en een $dates
variabele die alleen DateTime-objecten kan bevatten.
Variabelen gebruiken in commando’s en uitdrukkingen
Om een variabele in een commando of expressie te gebruiken, typ je de variabelenaam, voorafgegaan door het dollarteken ($
).
Als de variabelenaam en het dollarteken “niet tussen aanhalingstekens staan, of als ze” tussen dubbele aanhalingstekens staan ("
), t e waarde van de variabele wordt gebruikt in het commando of de uitdrukking.
Als de variabelenaam en het dollarteken tussen enkele aanhalingstekens staan ("
), markeert de variabelenaam wordt gebruikt in de expressie.
Voor meer informatie over het gebruik van aanhalingstekens in PowerShell, zieeabout_Quoting_Rules.
Dit voorbeeld krijgt de waarde van de $PROFILE
variabele, het pad naar het PowerShell-gebruikersprofielbestand in de PowerShell-console.
In deze Er worden bijvoorbeeld twee opdrachten getoond die het PowerShell-profiel innotepad.exe kunnen openen. Het voorbeeld met dubbele aanhalingstekens ("
) markeringen gebruikt de variabele “svalue.
De volgende voorbeelden gebruiken enkele aanhalingstekens ("
) markeert die de variabele als letterlijke tekst behandelen.
Variabelenamen die speciale tekens bevatten
Variabelenamen beginnen met een dollar ( $
) teken en kan alfanumerieke tekens en speciale tekens bevatten. De lengte van de variabelenaam wordt alleen beperkt door het beschikbare geheugen.
De beste praktijk is dat variabelenamen alleen alfanumerieke tekens en het onderstrepingsteken (_
) teken. Variabelenamen die spaties en andere speciale tekens bevatten, zijn moeilijk te gebruiken en moeten worden vermeden.
Alfanumerieke variabelenamen kunnen deze tekens bevatten :
- Unicode-tekens uit deze categorieën: Lu, Ll, Lt, Lm, L o, of Nd.
- Underscore (
_
) teken. - Vraagteken (
?
) teken.
De volgende lijst bevat de Unicode-categoriebeschrijvingen. Zie UnicodeCategory voor meer informatie.
- Lu – Hoofdletter
- Ll – Kleine letter
- Lt – Titelletter
- Lm – ModifierLetter
- Lo – OtherLetter
- Nd – DecimalDigitNumber
Om een variabelenaam met spaties of speciale tekens te maken of weer te geven, plaatst u de variabelenaam tussen de gekrulde accolades ({}
) tekens. De accolades geven PowerShell de opdracht om de tekens van de variabelenaam letterlijk te interpreteren.
Namen van speciale tekenvariabelen kunnen deze tekens bevatten:
De volgende opdracht maakt bijvoorbeeld de variabele met de naam save-items
. De accolades ({}
) zijn nodig omdat de naam van de variabele een koppelteken (-
) speciaal teken.
Met de volgende opdracht worden de onderliggende items opgehaald in de directory die wordt weergegeven door de ProgramFiles(x86)
enviro nment variabele.
Om te verwijzen naar een variabelenaam die accolades bevat, omsluit de variabelenaam inbraces en gebruik het backtick-teken om aan de accolades te ontsnappen. Maak bijvoorbeeld een variabele met de naam this{value}is
type:
Variabelen en bereik
Standaard zijn variabelen alleen beschikbaar in het bereik waarin ze “opnieuw zijn gemaakt.
Een variabele die u bijvoorbeeld in een functie maakt, is alleen beschikbaar binnen de functie. Een variabele die u in een script maakt, is alleen beschikbaar binnen het script. Als u het script van een punt voorziet, wordt de variabele toegevoegd aan de currentscope. Zie about_Scopes voor meer informatie.
U kunt gebruiken een bereikaanpasser om het standaardbereik van de variabele te wijzigen. De volgende uitdrukking maakt een variabele met de naam Computers
. De variabele heeft een globaal bereik, zelfs als deze is gemaakt in een script of functie.
Voor elk script of commando dat buiten de sessie wordt uitgevoerd, heb je de Using
bereikaanpasser nodig om de variabele in te sluiten waarden van het aanroepende sessiebereik, zodat buiten de sessiecode er toegang toe heeft.
Voor meer informatie, zie about_Remote_Variables.
Variabelen opslaan
Variabelen die u maakt zijn alleen beschikbaar in de sessie waarin u ze maakt. Ze gaan verloren wanneer u uw sessie sluit.
Als u de variabele wilt maken in elke PowerShell-sessie die u start, voegt u de variabele toe aan uw PowerShell-profiel.
Om bijvoorbeeld de waarde te wijzigen van de $VerbosePreference
variabele in elke PowerShell-sessie, voegt u de volgende opdracht toe aan uw PowerShell-profiel.
U kunt deze opdracht aan uw PowerShell-profiel toe door het bestand $PROFILE
te openen in een teksteditor, zoals notepad.exe. Voor meer informatie over PowerShell-profielen, zie about_Profiles.
De Variabele: drive
De PowerShell Variable-provider maakt een Variable:
-station dat eruitziet en werkt als een bestandssysteemstation, maar het bevat de variabelen in uw sessie en hun waarden.
Gebruik het volgende commando om over te schakelen naar het Variable:
station:
de items en variabelen in het Variable:
-station, gebruik de of Get-ChildItem
cmdlets.
Om de waarde van een bepaalde variabele te krijgen, gebruik bestandssysteemnotatie om de naam van het station en de naam van de variabele op te geven. Gebruik bijvoorbeeld de volgende opdracht om de $PSCulture
automatische variabele te krijgen.
Om meer informatie weer te geven over het Variable:
station en de PowerShellVariable provider, typ je:
Variabele syntaxis met providerpaden
U kunt voor een providerpad het dollarteken ($
) invoeren en toegang krijgen tot de inhoud van elke provider die de interface van IContentCmdletProvider implementeert.
De volgende ingebouwde PowerShell-providers ondersteunen deze notatie:
- about_Environment_Provider
- about_Variable_Provider
- about_Function_Provider
- about_Alias_Provider
De variabele cmdlets
PowerShell bevat een set cmdlets die zijn ontworpen om variabelen te beheren.
Om de cmdlets weer te geven, typ je:
Om hulp te krijgen voor een specifieke cmdlet, typ je:
Cmdlet-naam | Beschrijving |
---|---|
Clear-Variable |
Verwijdert de waarde van een variabele. |
Get-Variable |
Haalt de variabelen in de huidige console. |
New-Variable |
Creëert een nieuwe variabele. |
Remove-Variable |
Verwijdert een variabele en zijn waarde. |
Set-Variable |
Verandert de waarde van een variabele. |
Zie ook
about_Automatic_Variables
about_Environment_Variables