Delen via


New-Variable

Hiermee maakt u een nieuwe variabele.

Syntax

Default (Standaard)

New-Variable
    [-Name] <String>
    [[-Value] <Object>]
    [-Description <String>]
    [-Option <ScopedItemOptions>]
    [-Visibility <SessionStateEntryVisibility>]
    [-Force]
    [-PassThru]
    [-Scope <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

De cmdlet New-Variable maakt een nieuwe variabele in Windows PowerShell. U kunt een waarde toewijzen aan de variabele tijdens het maken of de waarde toewijzen of wijzigen nadat deze is gemaakt.

U kunt de parameters van New-Variable gebruiken om de eigenschappen van de variabele in te stellen, het bereik van een variabele in te stellen en te bepalen of variabelen openbaar of privé zijn.

Normaal gesproken maakt u een nieuwe variabele door de naam van de variabele en de bijbehorende waarde te typen, zoals $Var = 3, maar u kunt de cmdlet New-Variable gebruiken om de parameters te gebruiken.

Voorbeelden

Voorbeeld 1: Een variabele maken

PS C:\> New-Variable days

Met deze opdracht maakt u een nieuwe variabele met de naam dagen. U hoeft de parameter Name niet te typen.

Voorbeeld 2: Een variabele maken en deze een waarde toewijzen

PS C:\> New-Variable -Name "zipcode" -Value 98033

Met deze opdracht maakt u een variabele met de naam postcode en wijst u deze toe aan de waarde 98033.

Voorbeeld 3: Een variabele maken met de optie ReadOnly

PS C:\> New-Variable -Name Max -Value 256 -Option ReadOnly
PS C:\> New-Variable -Name max -Value 1024

New-Variable : A variable with name 'max' already exists.
At line:1 char:1
+ New-Variable -Name max -Value 1024
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (max:String) [New-Variable], SessionStateException
    + FullyQualifiedErrorId : VariableAlreadyExists,Microsoft.PowerShell.Commands.NewVariableCommand

PS C:\> New-Variable -Name max -Value 1024 -Force

In dit voorbeeld ziet u hoe u de optie ReadOnly van New-Variable gebruikt om een variabele te beschermen tegen overschrijven.

Met de eerste opdracht maakt u een nieuwe variabele met de naam Max en stelt u de waarde in op 256. Hierbij wordt de parameter Option gebruikt met de waarde ReadOnly.

Met de tweede opdracht wordt geprobeerd een tweede variabele met dezelfde naam te maken. Met deze opdracht wordt een fout geretourneerd, omdat de optie alleen-lezen is ingesteld op de variabele.

De derde opdracht maakt gebruik van de parameter Forceren om de alleen-lezenbeveiliging voor de variabele te overschrijven. In dit geval slaagt de opdracht om een nieuwe variabele met dezelfde naam te maken.

Voorbeeld 4: Een privévariabele maken

PS C:\> New-Variable -Name counter -Visibility Private

#Effect of private variable in a module.

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"
At line:1 char:1
+ $counter
+ ~~~~~~~~
    + CategoryInfo          : PermissionDenied: (counter:String) [], SessionStateException
    + FullyQualifiedErrorId : VariableIsPrivate

PS C:\> Get-Counter
Name         Value
----         -----
Counter1     3.1415
...

Met deze opdracht wordt het gedrag van een privévariabele in een module gedemonstreert. De module bevat de Get-Counter cmdlet, met een privévariabele met de naam Counter. De opdracht maakt gebruik van de parameter Visibility met de waarde Private om de variabele te maken.

In de voorbeelduitvoer ziet u het gedrag van een privévariabele. De gebruiker die de module heeft geladen, kan de waarde van de tellervariabele niet weergeven of wijzigen, maar de tellervariabele kan worden gelezen en gewijzigd door de opdrachten in de module.

Voorbeeld 5: Een variabele maken met een spatie

PS C:\> New-Variable -Name 'with space' -Value 'abc123xyz'

PS C:\> Get-Variable -Name 'with space'

Name                           Value
----                           -----
with space                     abc123xyz

PS C:\> ${with space}
abc123xyz

Met deze opdracht ziet u dat variabelen met spaties kunnen worden gemaakt. De variabelen kunnen worden geopend met behulp van de cmdlet Get-Variable of rechtstreeks door een variabele met accolades te scheiden.

Parameters

-Confirm

Voordat u de cmdlet uitvoert, vraagt het systeem om bevestiging.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Cf

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Description

Hiermee geeft u een beschrijving van de variabele.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Force

Geeft aan dat de cmdlet een variabele met dezelfde naam maakt als een bestaande alleen-lezenvariabele.

Standaard kunt u een variabele overschrijven, tenzij de variabele een optiewaarde van ReadOnly of Constant heeft. Zie de parameter Option voor meer informatie.

Parametereigenschappen

Type:SwitchParameter
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Name

Hiermee geeft u een naam voor de nieuwe variabele.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Option

Hiermee geeft u de waarde van de eigenschap Options van de variabele. De acceptabele waarden voor deze parameter 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.
  • Privé. De variabele is alleen beschikbaar in het huidige bereik.
  • AllScope. De variabele wordt gekopieerd naar nieuwe bereiken die worden gemaakt.
  • Constant. Kan niet worden verwijderd of gewijzigd. Constante is alleen geldig wanneer u een variabele maakt. U kunt de opties van een bestaande variabele niet wijzigen in Constant.

Als u de eigenschap Opties van alle variabelen in de sessie wilt zien, typt u Get-Variable | Format-Table -Property name, options -autosize.

Parametereigenschappen

Type:ScopedItemOptions
Default value:None
Geaccepteerde waarden:None, ReadOnly, Constant, Private, AllScope, Unspecified
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-PassThru

Retourneert een object dat het item aangeeft waarmee u werkt. Deze cmdlet genereert standaard geen uitvoer.

Parametereigenschappen

Type:SwitchParameter
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Scope

Hiermee geeft u het bereik van de nieuwe variabele. De acceptabele waarden voor deze parameter zijn:

  • Globaal. Variabelen die in het globale bereik zijn gemaakt, zijn overal toegankelijk in een PowerShell-proces.
  • Lokaal. Het lokale bereik verwijst naar het huidige bereik. Dit kan elk bereik zijn, afhankelijk van de context.
  • Script. Variabelen die in het scriptbereik zijn gemaakt, zijn alleen toegankelijk binnen het scriptbestand of de module waarin ze worden gemaakt.
  • Privé. Variabelen die in het privébereik zijn gemaakt, kunnen niet worden geopend buiten het bereik waarin ze bestaan. U kunt een privébereik gebruiken om een privéversie van een item met dezelfde naam in een ander bereik te maken.
  • Een getal ten opzichte van het huidige bereik (0 tot het aantal bereiken, waarbij 0 het huidige bereik is, 1 het bovenliggende bereik, 2 het bovenliggende bereik, enzovoort). Negatieve getallen kunnen niet worden gebruikt.

Lokaal is het standaardbereik wanneer de bereikparameter niet is opgegeven.

Zie about_Scopes voor meer informatie.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Value

Hiermee geeft u de initiële waarde van de variabele.

Parametereigenschappen

Type:Object
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:1
Verplicht:False
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten: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 aan andere gebruikers worden geleverd. De acceptabele waarden voor deze parameter 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 variabelen die worden geretourneerd door Get-Variable, of in weergaven van de variabele: station. 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.

Parametereigenschappen

Type:SessionStateEntryVisibility
Default value:None
Geaccepteerde waarden:Public, Private
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-WhatIf

Toont wat er zou gebeuren wanneer de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Wi

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

CommonParameters

Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.

Invoerwaarden

Object

U kunt een waarde doorsluisen naar nieuwe variabele.

Uitvoerwaarden

None or System.Management.Automation.PSVariable

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