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

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

Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"

Name                           Value
----                           -----
desc                           A description

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

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

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

Příkaz pomocí rutiny Set-Variable vytvoří proměnnou. Pomocí parametru PassThru vytvoří objekt představující novou proměnnou a pomocí operátoru kanálu (|) předá objekt rutině Format-List . Pomocí parametru Format-List Property s hodnotou všech (*) zobrazí všechny vlastnosti 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 v proměnné. Jinak proměnná obsahuje slova Get-Process.

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

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

New-Variable -Name "counter" -Visibility Public -Value 26
$Counter

26

Get-Variable c*

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

Set-Variable -Name "counter" -Visibility Private
Get-Variable c*

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

$counter

"Cannot access the variable '$counter' because it is a private variable"

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

Parametry

-Confirm

Před spuštěním rutiny zobrazí výzvu 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 element nebo vzor cesty, 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 ReadOnly možnosti nebo Constant. Další informace naleznete 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:

  • None: Nastaví žádné možnosti. (None je výchozí.)
  • ReadOnly: Lze odstranit. Nelze změnit, s výjimkou použití parametru Force.
  • Constant: Nelze odstranit ani změnit. Constant je platný pouze při vytváření proměnné. Nelze změnit možnosti existující proměnné na Constant.
  • Private: 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ů.

Tyto hodnoty jsou definovány jako výčet založený na příznaku. Pomocí tohoto parametru můžete zkombinovat více hodnot a nastavit více příznaků. Hodnoty lze předat parametru Option jako pole hodnot nebo jako řetězec oddělený čárkami těchto hodnot. Rutina zkombinuje hodnoty pomocí binární operace OR. Předání hodnot jako pole je nejjednodušší možností a také umožňuje použít pro hodnoty dokončování tabulátoru.

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:

  • Global
  • Local
  • Script
  • Private
  • Číslo relativní k aktuálnímu oboru (0 až počet oborů, kde 0 je aktuální obor a 1 je jeho nadřazený).

Local je výchozí možnost.

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á. (Public je výchozí.)
  • Private: Proměnná není viditelná.

Pokud je proměnná soukromá, nezobrazí 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

Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.

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 představující hodnotu proměnné můžete převést na tuto rutinu.

Výstupy

None

Ve výchozím nastavení tato rutina nevrací žádný výstup.

PSVariable

Pokud použijete parametr PassThru , vrátí tato rutina objekt PSVariable představující novou nebo změněnou proměnnou.

Poznámky

PowerShell obsahuje následující aliasy pro Set-Variable:

  • Všechny platformy:
    • set
    • sv