Sdílet prostřednictvím


New-Variable

Vytvoří novou proměnnou.

Syntaxe

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

Description

Rutina New-Variable vytvoří novou proměnnou ve Windows PowerShellu. Hodnotu proměnné můžete přiřadit při vytváření nebo přiřazování nebo změně hodnoty po jejím vytvoření.

Pomocí parametrů New-Variable můžete nastavit vlastnosti proměnné, nastavit obor proměnné a určit, jestli jsou proměnné veřejné nebo soukromé.

Obvykle vytvoříte novou proměnnou zadáním názvu proměnné a její hodnoty, například $Var = 3, ale můžete použít rutinu New-Variable použít její parametry.

Příklady

Příklad 1: Vytvoření proměnné

PS C:\> New-Variable days

Tento příkaz vytvoří novou proměnnou s názvem days. Není nutné zadávat parametr Name.

Příklad 2: Vytvoření proměnné a přiřazení hodnoty

PS C:\> New-Variable -Name "zipcode" -Value 98033

Tento příkaz vytvoří proměnnou s názvem PSČ a přiřadí jí hodnotu 98033.

Příklad 3: Vytvoření proměnné s možností 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

Tento příklad ukazuje, jak pomocí možnosti ReadOnly New-Variable chránit proměnnou před přepsáním.

První příkaz vytvoří novou proměnnou s názvem Max a nastaví její hodnotu na 256. Používá parametr Option s hodnotou ReadOnly.

Druhý příkaz se pokusí vytvořit druhou proměnnou se stejným názvem. Tento příkaz vrátí chybu, protože u proměnné je nastavená možnost jen pro čtení.

Třetí příkaz používá parametr Force k přepsání ochrany jen pro čtení u proměnné. V tomto případě příkaz k vytvoření nové proměnné se stejným názvem proběhne úspěšně.

Příklad 4: Vytvoření privátní proměnné

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

Tento příkaz ukazuje chování privátní proměnné v modulu. Modul obsahuje rutinu Get-Counter, která má privátní proměnnou s názvem Counter. Příkaz používá parametr Visibility s hodnotou Private k vytvoření proměnné.

Ukázkový výstup ukazuje chování privátní proměnné. Uživatel, který modul načetl, nemůže zobrazit nebo změnit hodnotu proměnné čítače, ale proměnnou čítače lze číst a měnit příkazy v modulu.

Příklad 5: Vytvoření proměnné s mezerou

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

Tento příkaz ukazuje, že lze vytvořit proměnné s mezerami. K proměnným lze přistupovat pomocí rutiny Get-Variable nebo přímo tak, že proměnnou oddělíte složenými závorkami.

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

-Force

Označuje, že rutina vytvoří proměnnou se stejným názvem jako existující 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:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Name

Určuje název nové 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é. Přijatelné hodnoty pro tento parametr jsou:

  • Žádný. Nenastaví žádné možnosti. (Výchozí hodnota není žádná.)
  • Jen pro čtení. Lze odstranit. Nelze změnit, s výjimkou použití parametru Force.
  • Soukromý. 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ů.
  • Konstanta. Nelze odstranit ani změnit. Konstanta je platná pouze při vytváření proměnné. Nelze změnit možnosti existující proměnné na konstantu.

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í položku, se kterou pracujete. Ve výchozím nastavení tato rutina negeneruje žádný výstup.

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

-Scope

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

  • Globální. Proměnné vytvořené v globálním oboru jsou přístupné všude v procesu PowerShellu.
  • Místní. Místní obor odkazuje na aktuální obor, může to být libovolný obor v závislosti na kontextu.
  • Skript. Proměnné vytvořené v oboru skriptu jsou přístupné pouze v souboru skriptu nebo modulu, ve které jsou vytvořeny.
  • Soukromý. Proměnné vytvořené v privátním oboru nelze získat přístup mimo obor, ve který existují. Privátní obor můžete použít k vytvoření privátní verze položky se stejným názvem v jiném oboru.
  • Číslo relativní k aktuálnímu oboru (0 až počet oborů, kde 0 je aktuální obor, 1 je jeho nadřazený obor, 2 nadřazený obor a tak dále). Záporná čísla nelze použít.

Místní je výchozí obor, pokud není zadaný parametr oboru.

Další informace najdete v tématu about_Scopes.

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

-Value

Určuje počáteční 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. Přijatelné hodnoty pro tento parametr jsou:

  • Veřejný. Proměnná je viditelná. (Veřejné je výchozí.)
  • Soukromý. 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:None
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

Hodnotu můžete new-variable.

Výstupy

None or System.Management.Automation.PSVariable

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