Set-Variable
Hiermee stelt u de waarde van een variabele in. Hiermee maakt u de variabele als deze niet bestaat met de aangevraagde naam.
Syntax
Set-Variable
[-Name] <String[]>
[[-Value] <Object>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Force]
[-Visibility <SessionStateEntryVisibility>]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
De cmdlet Set-Variable wijst een waarde toe aan een opgegeven variabele of wijzigt de huidige waarde. Als de variabele niet bestaat, wordt deze door de cmdlet gemaakt.
Voorbeelden
Voorbeeld 1: Een variabele instellen en de waarde ervan ophalen
PS C:\> Set-Variable -Name "desc" -Value "A description"
PS C:\> Get-Variable -Name "desc"
Met deze opdrachten wordt de waarde van de variabele desc ingesteld op een beschrijving en wordt vervolgens de waarde van de variabele opgehaald.
Voorbeeld 2: Een globale, alleen-lezen variabele instellen
PS C:\> Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru | Format-List -Property *
Met deze opdracht maakt u een globale, alleen-lezen variabele die alle processen op het systeem bevat, waarna alle eigenschappen van de variabele worden weergegeven.
De opdracht gebruikt de cmdlet Set-Variable om de variabele te maken. De parameter PassThru wordt gebruikt om een object te maken dat de nieuwe variabele vertegenwoordigt en de pijplijnoperator (|) om het object door te geven aan de cmdlet Format-List. De parameter Eigenschap van Format-List wordt gebruikt met de waarde alle (*) om alle eigenschappen van de zojuist gemaakte variabele weer te geven.
De waarde '(Get-Process)' staat tussen haakjes om ervoor te zorgen dat deze wordt uitgevoerd voordat deze wordt opgeslagen in de variabele. Anders bevat de variabele de woorden 'Get-Process'.
Voorbeeld 3: Inzicht in openbare versus privévariabelen
PS C:\> New-Variable -Name "counter" -Visibility Public -Value 26
PS C:\> $Counter
26
PS C:\> Get-Variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
Counter 26
PS C:\> Set-Variable -Name "counter" -Visibility Private
PS C:\> Get-Variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
PS C:\> $counter
"Cannot access the variable '$counter' because it is a private variable"
PS C:\> .\use-counter.ps1
#Commands completed successfully.
Deze opdracht laat zien hoe u de zichtbaarheid van een variabele wijzigt in Privé. Deze variabele kan worden gelezen en gewijzigd door scripts met de vereiste machtigingen, maar is niet zichtbaar voor de gebruiker.
De voorbeelduitvoer toont het verschil in het gedrag van openbare en persoonlijke variabelen.
Parameters
-Confirm
Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Hiermee geeft u de beschrijving van de variabele.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Hiermee geeft u een matrix van items die deze cmdlet uitsluit van de bewerking.
De waarde van deze parameter komt in aanmerking voor de path-parameter .
Voer een padelement of -patroon in, zoals *.txt
.
Jokertekens zijn toegestaan.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Hiermee kunt u een variabele maken met dezelfde naam als een bestaande alleen-lezen variabele of de waarde van een alleen-lezen variabele wijzigen.
Standaard kunt u een variabele overschrijven, tenzij de variabele een optiewaarde van ReadOnly of Constant heeft. Zie de parameter Option voor meer informatie.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Hiermee geeft u een matrix met items op die deze cmdlet in de bewerking opneemt.
De waarde van deze parameter komt in aanmerking voor de parameter Name .
Voer een naam of een naampatroon in, zoals c*
.
Jokertekens zijn toegestaan.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Name
Hiermee geeft u de naam van de variabele.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Option
Hiermee geeft u de waarde van de eigenschap Opties van de variabele.
Geldige waarden zijn:
- Geen: Hiermee stelt u geen opties in. ('Geen' is de standaardinstelling.)
- ReadOnly: Kan worden verwijderd. Kan niet worden gewijzigd, behalve met behulp van de parameter Force.
- Constante: kan niet worden verwijderd of gewijzigd. 'Constant' is alleen geldig wanneer u een variabele maakt. U kunt de opties van een bestaande variabele niet wijzigen in 'Constant'.
- Privé: de variabele is alleen beschikbaar in het huidige bereik.
- AllScope: de variabele wordt gekopieerd naar nieuwe bereiken die worden gemaakt.
Als u de eigenschap Opties van alle variabelen in de sessie wilt zien, typt u Get-Variable | Format-Table -Property name, options -Autosize
.
Type: | ScopedItemOptions |
Accepted values: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Retourneert een object dat de nieuwe variabele vertegenwoordigt. Deze cmdlet genereert standaard geen uitvoer.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Hiermee geeft u het bereik van de variabele. De acceptabele waarden voor deze parameter zijn:
- Globaal
- Lokaal
- Script
- Privé
- Een getal ten opzichte van het huidige bereik (0 tot en met het aantal bereiken, waarbij 0 het huidige bereik is en 1 het bovenliggende bereik).
Lokaal is de standaardinstelling.
Zie about_Scopes voor meer informatie.
Type: | String |
Position: | Named |
Default value: | Local |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
Hiermee geeft u de waarde van de variabele.
Type: | Object |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Visibility
Bepaalt of de variabele zichtbaar is buiten de sessie waarin deze is gemaakt. Deze parameter is ontworpen voor gebruik in scripts en opdrachten die worden geleverd aan andere gebruikers.
Geldige waarden zijn:
- Openbaar: de variabele is zichtbaar. ('Openbaar' is de standaardinstelling.)
- Privé: De variabele is niet zichtbaar.
Wanneer een variabele privé is, wordt deze niet weergegeven in lijsten met variabelen, zoals die worden geretourneerd door Get-Variable, of in weergaven van het station Variabele: . Opdrachten voor het lezen of wijzigen van de waarde van een privévariabele retourneren een fout. De gebruiker kan echter opdrachten uitvoeren die gebruikmaken van een privévariabele als de opdrachten zijn geschreven in de sessie waarin de variabele is gedefinieerd.
Type: | SessionStateEntryVisibility |
Accepted values: | Public, Private |
Position: | Named |
Default value: | Public |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
U kunt een object dat de waarde van de variabele vertegenwoordigt, doorspezen naar Set-Variable.
Uitvoerwaarden
None or System.Management.Automation.PSVariable
Wanneer u de parameter PassThru gebruikt, genereert Set-Variable een System.Management.Automation.PSVariable-object dat de nieuwe of gewijzigde variabele vertegenwoordigt. Anders genereert deze cmdlet geen uitvoer.