Delen via


New-Variable

Hiermee maakt u een nieuwe variabele.

Syntax

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

Description

De New-Variable cmdlet maakt een nieuwe variabele in Windows PowerShell. U kunt een waarde aan de variabele toewijzen tijdens het maken ervan 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 waarde ervan te typen, zoals $Var = 3, maar u kunt de cmdlet gebruiken om de New-Variable bijbehorende parameters te gebruiken.

Voorbeelden

Voorbeeld 1: een variabele Creatie

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: Creatie een variabele en wijs deze een waarde toe

New-Variable -Name "zipcode" -Value 98033

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

Voorbeeld 3: een variabele Creatie 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 ReadOnly optie van New-Variable gebruikt om te voorkomen dat een variabele wordt overschreven.

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

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

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

Voorbeeld 4: Meerdere opties toewijzen aan een variabele

New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant

In dit voorbeeld wordt een variabele gemaakt en worden de AllScope opties en Constant toegewezen, zodat de variabele beschikbaar is in het huidige bereik en eventuele nieuwe bereiken die zijn gemaakt en niet kunnen worden gewijzigd of verwijderd.

Voorbeeld 5: een privévariabele Creatie

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

Deze opdracht demonstreert het gedrag van een privévariabele in een module. De module bevat de Get-Counter cmdlet, die een persoonlijke variabele heeft met de naam Teller. De opdracht maakt gebruik van de parameter Zichtbaarheid met de waarde Privé om de variabele te maken.

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

Voorbeeld 6: Creatie een variabele 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

Deze opdracht laat zien dat variabelen met spaties kunnen worden gemaakt. De variabelen kunnen worden geopend met behulp van de Get-Variable cmdlet of rechtstreeks door een variabele met accolades te scheiden.

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 een beschrijving van de variabele.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

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

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:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Hiermee geeft u een naam voor de nieuwe 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. De aanvaardbare waarden voor deze parameter zijn:

  • None - Stelt geen opties in. None is de standaardwaarde.
  • ReadOnly - Kan worden verwijderd. Kan niet worden gewijzigd, behalve met behulp van de parameter Force .
  • Private - 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. Constant is alleen geldig wanneer u een variabele maakt. U kunt de opties van een bestaande variabele niet wijzigen in Constant.

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.

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 het item vertegenwoordigt waarmee u werkt. Deze cmdlet genereert standaard geen uitvoer.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

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

  • Global - Variabelen die in het globale bereik zijn gemaakt, zijn overal in een PowerShell-proces toegankelijk.
  • Local - 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 in het scriptbestand of de module waarin ze zijn gemaakt.
  • Private - 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 persoonlijke versie van een item met dezelfde naam in een ander bereik te maken.
  • Een getal ten opzichte van het huidige bereik (0 tot en met het aantal bereiken, waarbij 0 het huidige bereik is, 1 het bovenliggende bereik, 2 het bovenliggende bereik, enzovoort). Negatieve getallen kunnen niet worden gebruikt.

Local is het standaardbereik wanneer de bereikparameter niet is opgegeven.

Zie about_Scopes voor meer informatie.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Value

Hiermee geeft u de beginwaarde van de variabele op.

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. De aanvaardbare waarden voor deze parameter zijn:

  • Public - De variabele is zichtbaar. Public is de standaardwaarde.
  • 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 Variable: 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.

Type:SessionStateEntryVisibility
Accepted values:Public, Private
Position:Named
Default value:None
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 waarde doorsnijden naar New-Variable.

Uitvoerwaarden

None or System.Management.Automation.PSVariable

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