Dela via


New-Variable

Skapar en ny variabel.

Syntax

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

Description

Cmdleten New-Variable skapar en ny variabel i PowerShell. Du kan tilldela variabeln ett värde när du skapar den eller tilldela eller ändra värdet när den har skapats.

Du kan använda parametrarna New-Variable för för att ange egenskaperna för variabeln, ange omfånget för en variabel och avgöra om variabler är offentliga eller privata.

Vanligtvis skapar du en ny variabel genom att skriva variabelnamnet och dess värde, till exempel $Var = 3, men du kan använda cmdleten New-Variable för att använda dess parametrar.

Exempel

Exempel 1: Skapa en variabel

New-Variable days

Det här kommandot skapar en ny variabel med namnet days. Du behöver inte ange parametern Namn .

Exempel 2: Skapa en variabel och tilldela den ett värde

New-Variable -Name "zipcode" -Value 98033

Det här kommandot skapar en variabel med namnet zipcode och tilldelar den värdet 98033.

Exempel 3: Skapa en variabel med alternativet 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

Det här exemplet visar hur du använder ReadOnly alternativet New-Variable för att skydda en variabel från att skrivas över.

Det första kommandot skapar en ny variabel med namnet Max och anger värdet till 256. Den använder parametern Alternativ med värdet ReadOnly.

Det andra kommandot försöker skapa en andra variabel med samma namn. Det här kommandot returnerar ett fel eftersom det skrivskyddade alternativet har angetts för variabeln.

Det tredje kommandot använder force-parametern för att åsidosätta det skrivskyddade skyddet för variabeln. I det här fallet lyckas kommandot för att skapa en ny variabel med samma namn.

Exempel 4: Tilldela flera alternativ till en variabel

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

Det här exemplet skapar en variabel och tilldelar AllScope alternativen och Constant så att variabeln blir tillgänglig i det aktuella omfånget och eventuella nya omfång som skapas och inte kan ändras eller tas bort.

Exempel 5: Skapa en privat variabel

Det här kommandot visar beteendet för en privat variabel i en modul. Modulen innehåller cmdleten Get-Counter , som har en privat variabel med namnet Counter. Kommandot använder parametern Synlighet med värdet Privat för att skapa variabeln.

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

Exempelutdata visar beteendet för en privat variabel. Användaren som har läst in modulen kan inte visa eller ändra värdet för räknarvariabeln, men variabeln Counter kan läsas och ändras av kommandona i modulen.

Exempel 6: Skapa en variabel med ett blanksteg

Det här exemplet visar att variabler med blanksteg kan skapas. Variablerna kan nås med hjälp av cmdleten Get-Variable eller direkt genom att avgränsa en variabel med klammerparenteser.

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

Parametrar

-Confirm

Uppmanar dig att bekräfta innan du kör cmdleten.

Typ:SwitchParameter
Alias:cf
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Description

Anger en beskrivning av variabeln.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Force

Anger att cmdleten skapar en variabel med samma namn som en befintlig skrivskyddad variabel.

Som standard kan du skriva över en variabel om inte variabeln har ett alternativvärde på ReadOnly eller Constant. Mer information finns i parametern Alternativ .

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Name

Anger ett namn på den nya variabeln.

Typ:String
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Option

Anger värdet för egenskapen Alternativ för variabeln. De acceptabla värdena för den här parametern är:

  • None - Anger inga alternativ. None används som standard.
  • ReadOnly – Kan tas bort. Det går inte att ändra, förutom med hjälp av force-parametern.
  • Private – Variabeln är endast tillgänglig i det aktuella omfånget.
  • AllScope – Variabeln kopieras till alla nya omfång som skapas.
  • Constant – Det går inte att ta bort eller ändra. Constant är endast giltig när du skapar en variabel. Du kan inte ändra alternativen för en befintlig variabel till Constant.

Dessa värden definieras som en flaggbaserad uppräkning. Du kan kombinera flera värden för att ange flera flaggor med hjälp av den här parametern. Värdena kan skickas till parametern Alternativ som en matris med värden eller som en kommaavgränsad sträng av dessa värden. Cmdleten kombinerar värdena med hjälp av en binär-OR-åtgärd. Att skicka värden som en matris är det enklaste alternativet och du kan även använda tab-completion på värdena.

Om du vill se egenskapen Alternativ för alla variabler i sessionen skriver du Get-Variable | Format-Table -Property name, options -AutoSize.

Typ:ScopedItemOptions
Godkända värden:None, ReadOnly, Constant, Private, AllScope, Unspecified
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-PassThru

Returnerar ett objekt som representerar det objekt som du arbetar med. Som standard genererar den här cmdleten inga utdata.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Scope

Anger omfånget för den nya variabeln. De acceptabla värdena för den här parametern är:

  • Global – Variabler som skapas i det globala omfånget är tillgängliga överallt i en PowerShell-process.
  • Local – Det lokala omfånget refererar till det aktuella omfånget, det kan vara valfritt omfång beroende på kontexten. Local är standardomfånget när omfångsparametern inte har angetts.
  • Script – Variabler som skapas i skriptomfånget är endast tillgängliga i skriptfilen eller modulen som de skapas i.
  • Ett tal i förhållande till det aktuella omfånget (0 genom antalet omfång, där 0 är det aktuella omfånget, 1 är dess överordnade, 2 överordnat för det överordnade omfånget och så vidare). Det går inte att använda negativa tal.

Kommentar

Parametern accepterar också värdet Privateför . Private är egentligen inte ett omfång utan en valfri inställning för en variabel. Men om du använder Private värdet med den här cmdleten ändras inte variabelns synlighet. Mer information finns i about_Scopes.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Value

Anger variabelns initiala värde.

Typ:Object
Position:1
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Visibility

Avgör om variabeln visas utanför sessionen där den skapades. Den här parametern är utformad för användning i skript och kommandon som ska levereras till andra användare. De acceptabla värdena för den här parametern är:

  • Public - Variabeln är synlig. Public används som standard.
  • Private - Variabeln är inte synlig.

När en variabel är privat visas den inte i listor med variabler, till exempel de som returneras av Get-Variableeller i visning av Variable: enheten. Kommandon för att läsa eller ändra värdet för en privat variabel returnerar ett fel. Användaren kan dock köra kommandon som använder en privat variabel om kommandona skrevs i sessionen där variabeln definierades.

Typ:SessionStateEntryVisibility
Godkända värden:Public, Private
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-WhatIf

Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.

Typ:SwitchParameter
Alias:wi
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

Indata

Object

Du kan skicka valfritt objekt till New-Variable.

Utdata

None

Som standard returnerar den här cmdleten inga utdata.

PSVariable

När du använder parametern PassThru returnerar den här cmdleten ett PSVariable-objekt som representerar den nya variabeln.

Kommentarer

Windows PowerShell innehåller följande alias för New-Variable:

  • nv