Sdílet prostřednictvím


Set-Variable

Nastaví hodnotu proměnné. Vytvoří proměnnou, pokud neexistuje proměnná s požadovaným názvem.

Syntaxe

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

Description

Rutina Set-Variable přiřadí hodnotu zadané proměnné nebo změní aktuální hodnotu. Pokud proměnná neexistuje, rutina ji vytvoří.

Příklady

Příklad 1: Nastavení proměnné a získání její hodnoty

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

Tyto příkazy nastaví hodnotu proměnné desc na popis A a pak získá hodnotu proměnné.

Příklad 2: Nastavení globální proměnné jen pro čtení

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

Tento příkaz vytvoří globální proměnnou jen pro čtení, která obsahuje všechny procesy v systému, a pak zobrazí všechny vlastnosti proměnné.

Příkaz k vytvoření proměnné používá rutinu Set-Variable. Pomocí parametru PassThru vytvoří objekt představující novou proměnnou a pomocí operátoru kanálu (|) předá objekt rutině Format-List. Používá Vlastnost parametr Format-List s hodnotou všech (*) k zobrazení všech vlastností nově vytvořené proměnné.

Hodnota "(Get-Process)" je uzavřena v závorkách, aby se zajistilo, že se spustí před uložením do proměnné. V opačném případě proměnná obsahuje slova "Get-Process".

Příklad 3: Vysvětlení veřejných a privátních proměnných

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.

Tento příkaz ukazuje, jak změnit viditelnost proměnné na Privátní. Tuto proměnnou lze číst a měnit skripty s požadovanými oprávněními, ale uživatel ji nevidí.

Ukázkový výstup ukazuje rozdíl v chování veřejných a privátních proměnných.

Parametry

-Confirm

Před spuštěním rutiny vás vyzve k potvrzení.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Description

Určuje popis proměnné.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Exclude

Určuje pole položek, které tato rutina z operace vylučuje. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek cesty nebo vzor, například *.txt. Jsou povoleny zástupné cardy.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-Force

Umožňuje vytvořit proměnnou se stejným názvem jako existující proměnnou jen pro čtení nebo změnit hodnotu proměnné jen pro čtení.

Ve výchozím nastavení můžete přepsat proměnnou, pokud proměnná nemá hodnotu možnosti ReadOnly nebo Constant. Další informace najdete v parametru Option.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Include

Určuje pole položek, které tato rutina zahrnuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Name. Zadejte název nebo vzor názvu, například c*. Jsou povoleny zástupné cardy.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-Name

Určuje název proměnné.

Typ:String[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Option

Určuje hodnotu vlastnosti Options proměnné.

Platné hodnoty jsou:

  • Žádné: Nenastaví žádné možnosti. (Výchozí hodnota je Žádná.)
  • ReadOnly: Lze odstranit. Nelze změnit, s výjimkou použití parametru Force.
  • Konstanta: Nelze odstranit ani změnit. Konstanta je platná pouze při vytváření proměnné. Možnosti existující proměnné nelze změnit na Konstanta.
  • Privátní: Proměnná je k dispozici pouze v aktuálním oboru.
  • AllScope: Proměnná se zkopíruje do všech nově vytvořených oborů.

Pokud chcete zobrazit vlastnost Možnosti všech proměnných v relaci, zadejte Get-Variable | Format-Table -Property name, options -Autosize.

Typ:ScopedItemOptions
Přípustné hodnoty:None, ReadOnly, Constant, Private, AllScope, Unspecified
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-PassThru

Vrátí objekt představující novou proměnnou. Ve výchozím nastavení tato rutina negeneruje žádný výstup.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Scope

Určuje rozsah proměnné. Přijatelné hodnoty pro tento parametr jsou:

  • Globální
  • Místní
  • Skript
  • Soukromý
  • Číslo relativní k aktuálnímu oboru (0 až počet oborů, kde 0 je aktuální obor a 1 je jeho nadřazený).

Místní je výchozí hodnota.

Další informace najdete v tématu about_Scopes.

Typ:String
Position:Named
Default value:Local
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Value

Určuje hodnotu proměnné.

Typ:Object
Position:1
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Visibility

Určuje, zda je proměnná viditelná mimo relaci, ve které byla vytvořena. Tento parametr je určený pro použití ve skriptech a příkazech, které se doručí jiným uživatelům.

Platné hodnoty jsou:

  • Public: Proměnná je viditelná. ("Veřejné" je výchozí.)
  • Private: Proměnná není viditelná.

Pokud je proměnná soukromá, nezobrazuje se v seznamech proměnných, jako jsou proměnné vrácené get-variable, nebo v zobrazení proměnné: jednotka. Příkazy pro čtení nebo změnu hodnoty privátní proměnné vrátí chybu. Uživatel ale může spouštět příkazy, které používají privátní proměnnou, pokud byly příkazy napsané v relaci, ve které byla proměnná definována.

Typ:SessionStateEntryVisibility
Přípustné hodnoty:Public, Private
Position:Named
Default value:Public
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-WhatIf

Ukazuje, co se stane, když se rutina spustí. Rutina se nespustí.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

Object

Objekt, který představuje hodnotu proměnné, můžete pipetovat Set-Variable.

Výstupy

None or System.Management.Automation.PSVariable

Pokud použijete parametr PassThru, Set-Variable vygeneruje System.Management.Automation.PSVariable objekt představující novou nebo změněnou proměnnou. Jinak tato rutina negeneruje žádný výstup.