Dela via


Set-Variable

Anger värdet för en variabel. Skapar variabeln om en med det begärda namnet inte finns.

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

Cmdleten Set-Variable tilldelar ett värde till en angiven variabel eller ändrar det aktuella värdet. Om variabeln inte finns skapar cmdleten den.

Exempel

Exempel 1: Ange en variabel och hämta dess värde

PS C:\> Set-Variable -Name "desc" -Value "A description"
PS C:\> Get-Variable -Name "desc"

Dessa kommandon anger värdet för desc-variabeln till En beskrivning och hämtar sedan värdet för variabeln.

Exempel 2: Ange en global, skrivskyddad variabel

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

Det här kommandot skapar en global, skrivskyddad variabel som innehåller alla processer i systemet och visar sedan alla egenskaper för variabeln.

Kommandot använder cmdleten Set-Variable för att skapa variabeln. Den använder parametern PassThru för att skapa ett objekt som representerar den nya variabeln och använder pipelineoperatorn (|) för att skicka objektet till cmdleten Format-List. Den använder parametern Egenskap för Format-List med värdet alla (*) för att visa alla egenskaper för den nyligen skapade variabeln.

Värdet "(Get-Process)", omges av parenteser för att säkerställa att det körs innan det lagras i variabeln. I annat fall innehåller variabeln orden "Get-Process".

Exempel 3: Förstå offentliga och privata variabler

PS C:\> New-Variable -Name "counter" -Visibility Public -Value 26
PS C:\> $Counter
26
PS C:\> Get-Variable c*

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

PS C:\> Set-Variable -Name "counter" -Visibility Private
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"

PS C:\> .\use-counter.ps1
#Commands completed successfully.

Det här kommandot visar hur du ändrar synligheten för en variabel till Privat. Den här variabeln kan läsas och ändras av skript med nödvändiga behörigheter, men den är inte synlig för användaren.

Exempelutdata visar skillnaden i beteendet för offentliga och privata variabler.

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 beskrivningen av variabeln.

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

-Exclude

Anger en matris med objekt som den här cmdleten undantar från åtgärden. Värdet för den här parametern kvalificerar parametern Path. Ange ett sökvägselement eller mönster, till exempel *.txt. Jokertecken tillåts.

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

-Force

Gör att du kan skapa en variabel med samma namn som en befintlig skrivskyddad variabel eller ändra värdet för en skrivskyddad variabel.

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

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

-Include

Anger en matris med objekt som den här cmdleten innehåller i åtgärden. Värdet för den här parametern kvalificerar parametern Name. Ange ett namn- eller namnmönster, till exempel c*. Jokertecken tillåts.

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

-Name

Anger variabelnamnet.

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.

Giltiga värden är:

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

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 den nya variabeln. Som standard genererar den här cmdleten inga utdata.

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

-Scope

Anger variabelns omfång. De godtagbara värdena för den här parametern är:

  • Global
  • Lokal
  • Manus
  • Privat
  • Ett tal i förhållande till det aktuella omfånget (0 genom antalet omfång, där 0 är det aktuella omfånget och 1 är dess överordnade).

Lokal är standardinställningen.

Mer information finns i about_Scopes.

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

-Value

Anger värdet för variabeln.

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.

Giltiga värden är:

  • Offentligt: Variabeln är synlig. ("Offentlig" är standard.)
  • Privat: Variabeln är inte synlig.

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.

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

-WhatIf

Visar vad som skulle hända om cmdleten körs. 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 ett objekt som representerar värdet för variabeln till Set-Variable.

Utdata

None or System.Management.Automation.PSVariable

När du använder parametern PassThru genererar Set-Variable ett System.Management.Automation.PSVariable-objekt som representerar den nya eller ändrade variabeln. Annars genererar den här cmdleten inga utdata.