New-Variable

Vytvoří novou proměnnou.

Syntax

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

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

Příklady

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

New-Variable days

Tento příkaz vytvoří novou proměnnou s názvem dny. K zadání parametru Name není nutné.

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

New-Variable -Name "zipcode" -Value 98033

Tento příkaz vytvoří proměnnou s názvem PSČ a přiřadí ji 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 použít ReadOnly možnost 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 pro proměnnou je nastavená možnost jen pro čtení.

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

Příklad 4: Přiřazení více možností proměnné

New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant

Tento příklad vytvoří proměnnou a přiřadí AllScope ji a Constant možnosti, aby byla proměnná dostupná v aktuálním oboru a všechny nově vytvořené obory a nelze ji změnit ani odstranit.

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

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

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

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 Counter lze číst a měnit příkazy v modulu.

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

Tento příklad ukazuje, že proměnné s mezerami je možné vytvořit. K proměnným lze přistupovat pomocí Get-Variable rutiny nebo přímo oddělovačem proměnné pomocí závorek.

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

Parametry

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Určuje popis proměnné.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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 proměnnou přepsat, pokud proměnná nemá hodnotu ReadOnly možnosti nebo Constant. Další informace najdete v parametru Option .

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Name

Určuje název nové proměnné.

Type:String
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Option

Určuje hodnotu vlastnosti Options proměnné. Tento parametr přijímá tyto hodnoty:

  • None - Nenastaví žádné možnosti. None je výchozí možnost.
  • ReadOnly - Je možné odstranit. Nelze změnit, s výjimkou použití parametru Force .
  • 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ů.
  • 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.

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.

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

Type:ScopedItemOptions
Accepted values:None, ReadOnly, Constant, Private, AllScope, Unspecified
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Vrátí objekt představující položku, se kterou pracujete. Ve výchozím nastavení tato rutina negeneruje žádný výstup.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Scope

Určuje obor nové proměnné. Tento parametr přijímá tyto hodnoty:

  • Global – Proměnné vytvořené v globálním oboru jsou přístupné všude v procesu PowerShellu.
  • Local – Místní obor odkazuje na aktuální obor, může to být jakýkoli rozsah v závislosti na kontextu. Local je výchozí obor, pokud není zadán parametr oboru.
  • Script – Proměnné vytvořené v oboru skriptu jsou přístupné pouze v rámci souboru skriptu nebo modulu, ve které jsou vytvořeny.
  • Číslo relativní k aktuálnímu oboru (0 až počet oborů, kde 0 je aktuální obor, 1 je nadřazený, 2 nadřazený obor atd.). Záporná čísla nelze použít.

Poznámka

Parametr také přijímá hodnotu Private. Private není ve skutečnosti obor, ale volitelné nastavení pro proměnnou. Použití Private hodnoty s touto rutinou však nezmění viditelnost proměnné. Další informace najdete v tématu about_Scopes.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Value

Určuje počáteční hodnotu proměnné.

Type:Object
Position:1
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Visibility

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

  • Public - Proměnná je viditelná. Public je výchozí možnost.
  • 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í Variable: jednotky. Příkazy pro čtení nebo změnu hodnoty privátní proměnné vrátí chybu. Uživatel však může spouštět příkazy, které používají privátní proměnnou, pokud byly příkazy zapsány v relaci, ve které byla proměnná definována.

Type:SessionStateEntryVisibility
Accepted values:Public, Private
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

Object

Hodnotu můžete roušit na New-Variablehodnotu .

Výstupy

None, System.Management.Automation.PSVariable

Tato rutina vrátí objekt PSVariable představující novou proměnnou, pokud zadáte parametr PassThru . V opačném případě nevrací žádný výstup.