Delen via


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 Set-Variable cmdlet 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

Met deze opdrachten wordt de waarde van de $desc variabele ingesteld op A descriptionen wordt vervolgens de waarde van de variabele opgehaald.

Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"

Name                           Value
----                           -----
desc                           A description

Voorbeeld 2: Een globale, alleen-lezen variabele instellen

In dit voorbeeld wordt een globale, alleen-lezen variabele gemaakt die alle processen op het systeem bevat en vervolgens worden alle eigenschappen van de variabele weergegeven.

Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru |
    Format-List -Property *

De opdracht gebruikt de Set-Variable cmdlet om de variabele te maken. De parameter PassThru wordt gebruikt om een object te maken dat de nieuwe variabele vertegenwoordigt en de pijplijnoperator (|) wordt gebruikt om het object door te geven aan de Format-List cmdlet. 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), wordt tussen haakjes geplaatst 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

In dit voorbeeld ziet u hoe u de zichtbaarheid van een variabele wijzigt in Private. Deze variabele kan worden gelezen en gewijzigd door scripts met de vereiste machtigingen, maar is niet zichtbaar voor de gebruiker.

New-Variable -Name "counter" -Visibility Public -Value 26
$Counter

26

Get-Variable c*

Name                  Value
----                  -----
Culture               en-US
ConsoleFileName
ConfirmPreference     High
CommandLineParameters {}
Counter               26

Set-Variable -Name "counter" -Visibility Private
Get-Variable c*

Name                  Value
----                  -----
Culture               en-US
ConsoleFileName
ConfirmPreference     High
CommandLineParameters {}

$counter

"Cannot access the variable '$counter' because it is a private variable"

.\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.

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 Constantheeft. 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:

  • None: Hiermee stelt u geen opties in. (None is de standaardinstelling.)
  • ReadOnly: Kan worden verwijderd. Kan niet worden gewijzigd, behalve met behulp van de parameter Force.
  • Constant: 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.
  • Private: De variabele is alleen beschikbaar in het huidige bereik.
  • AllScope: de variabele wordt gekopieerd naar nieuwe bereiken die worden gemaakt.

Deze waarden worden gedefinieerd als een opsomming op basis van een vlag. U kunt meerdere waarden combineren om meerdere vlaggen in te stellen met behulp van deze parameter. De waarden kunnen worden doorgegeven aan de parameter Option als een matrix met waarden of als een door komma's gescheiden tekenreeks van deze waarden. De cmdlet combineert de waarden met behulp van een binaire-OR-bewerking. Het doorgeven van waarden als een matrix is de eenvoudigste optie en stelt u ook in staat om tabvoltooiing te gebruiken voor de waarden.

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:

  • Global
  • Local
  • Script
  • Private
  • 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).

Local is de standaardwaarde.

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:

  • Public: de variabele is zichtbaar. (Public is de standaardinstelling.)
  • Private: 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

Object

U kunt een -object dat de waarde van de variabele vertegenwoordigt doorsnijden naar Set-Variable.

Uitvoerwaarden

None or System.Management.Automation.PSVariable

Wanneer u de parameter PassThru gebruikt, Set-Variable wordt een System.Management.Automation.PSVariable-object gegenereerd dat de nieuwe of gewijzigde variabele vertegenwoordigt. Anders genereert deze cmdlet geen uitvoer.