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