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 Windows PowerShell. Du kan tilldela ett värde till variabeln när du skapar den eller tilldela eller ändra värdet när det har skapats.
Du kan använda parametrarna i New-Variable 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 Ny variabel för att använda dess parametrar.
Exempel
Exempel 1: Skapa en variabel
PS C:\> 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
PS C:\> 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 alternativet ReadOnly i 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: Skapa en privat variabel
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
...
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.
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 variabeln Counter, men variabeln Counter kan läsas och ändras av kommandona i modulen.
Exempel 5: Skapa en variabel med ett blanksteg
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
Det här kommandot 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.
Parametrar
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Anger en beskrivning av variabeln.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 som ReadOnly eller Constant. Mer information finns i parametern Alternativ .
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Anger ett namn på den nya variabeln.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Option
Anger värdet för egenskapen Alternativ för variabeln. De acceptabla värdena för den här parametern är:
- Inga. Anger inga alternativ. (Ingen är standard.)
- Readonly. Kan tas bort. Det går inte att ändra, förutom med hjälp av parametern Force .
- Privat. Variabeln är endast tillgänglig i det aktuella omfånget.
- AllScope. Variabeln kopieras till alla nya omfång som skapas.
- Konstant. Det går inte att ta bort eller ändra. Konstanten är endast giltig när du skapar en variabel. Du kan inte ändra alternativen för en befintlig variabel till Konstant.
Om du vill se egenskapen Alternativ för alla variabler i sessionen skriver du 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
Returnerar ett objekt som representerar det objekt som du arbetar med. Som standard genererar denna cmdlet inga utdata.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Anger omfånget för den nya variabeln. De acceptabla värdena för den här parametern är:
- Globala. Variabler som skapas i det globala omfånget är tillgängliga överallt i en PowerShell-process.
- Lokala. Det lokala omfånget refererar till det aktuella omfånget, det kan vara valfritt omfång beroende på kontexten.
- Skript. Variabler som skapas i skriptomfånget är endast tillgängliga i skriptfilen eller modulen som de skapas i.
- Privat. Variabler som skapats i det privata omfånget kan inte nås utanför det omfång som de finns i. Du kan använda privat omfång för att skapa en privat version av ett objekt med samma namn i ett annat omfång.
- 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 överordnad för det överordnade omfånget och så vidare). Negativa tal kan inte användas.
Lokalt är standardomfånget när omfångsparametern inte har angetts.
Mer information finns i about_Scopes.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
Anger det ursprungliga värdet för variabeln.
Type: | Object |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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:
- Offentliga. Variabeln visas. (Offentlig är standard.)
- Privat. Variabeln visas inte.
När en variabel är privat visas den inte i listor med variabler, till exempel de som returneras av Get-Variable eller i visning av variabeln: enhet. 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.
Type: | SessionStateEntryVisibility |
Accepted values: | Public, Private |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka ett värde till New-Variable.
Utdata
None or System.Management.Automation.PSVariable
När du använder parametern PassThru genererar New-Variable ett System.Management.Automation.PSVariable-objekt som representerar den nya variabeln. Annars genererar den här cmdleten inga utdata.