O proměnných
- 11/09/2020
- 9 minut na čtení
-
- S
- s
- q
Krátký popis
Popisuje, jak proměnné ukládají hodnoty, které lze použít v prostředí PowerShell.
Dlouhý popis
V proměnných prostředí PowerShell můžete ukládat všechny typy hodnot. Například uložte výsledky příkazů a uložte prvky, které se používají v příkazech a výrazech, jako jsou názvy, cesty, nastavení a hodnoty.
Proměnná je jednotka paměti, ve které jsou hodnoty uloženy. V prostředí PowerShell jsou proměnné reprezentovány textovými řetězci, které začínají znakem dolaru ($
), například $a
, $process
nebo $my_var
.
Názvy proměnných nerozlišují velká a malá písmena a mohou obsahovat mezery a speciální znaky. Názvy proměnných však zahrnout speciální znaky a mezery, které je obtížné použít, a je třeba se jim vyhnout. Další informace najdete v tématu Názvy proměnných, které obsahují speciální znaky.
V prostředí PowerShell existuje několik různých typů proměnných.
-
Uživatelem vytvořené proměnné: Uživatelem vytvořené proměnné vytváří a udržuje uživatel. Ve výchozím nastavení existují proměnné, které vytvoříte na příkazovém řádku PowerShellu, pouze když je otevřené okno PowerShellu. Když je PowerShellwindows zavřený, proměnné jsou smazáno. Chcete-li uložit proměnnou, přidejte ji do svého profilu PowerShell. Proměnné můžete vytvářet také ve skriptech s globálním, skriptovým nebo místním rozsahem.
-
Automatické va riables: Automatické proměnné ukládají stav prostředí PowerShell. Tyto proměnné jsou vytvářeny PowerShellem a PowerShell mění jejich hodnoty podle potřeby, aby byla zachována jejich přesnost. Uživatelé nemohou změnit hodnotu těchto proměnných. Například proměnná
$PSHOME
ukládá cestu k instalačnímu adresáři PowerShell.Další informace, seznam a popis automatických proměnných, viz about_Automatic_Variables.
-
Proměnné předvoleb: Předvolené proměnné ukládají uživatelské předvolby pro PowerShell. Tyto proměnné jsou vytvářeny prostředím PowerShell a jsou vyplněny výchozími hodnotami. Uživatelé mohou změnit hodnoty těchto proměnných. Například proměnná
$MaximumHistoryCount
určuje maximální počet záznamů v historii relace.Další informace, seznam a popis proměnné předvoleb, viz about_Preference_Variables.
Práce s proměnnými
Chcete-li vytvořit novou proměnnou, přiřaďte hodnotu proměnné pomocí příkazu přiřazení. před použitím proměnnou nemusím deklarovat. Výchozí hodnota všech proměnných je $null
.
Chcete-li získat seznam všech proměnných v relaci PowerShell, zadejte Get-Variable
. Názvy proměnných se zobrazují bez předchozího znaku dolaru ($
), který slouží k odkazu na proměnné.
Například:
Proměnné jsou užitečné pro ukládání výsledků příkazů.
Například:
To zobrazit hodnotu proměnné, zadejte název proměnné, před kterým bude znak adollar ($
).
Například:
Změna hodnoty proměnné přiřaďte proměnné novou hodnotu.
Následující příklady zobrazují hodnotu proměnné $MyVariable
, mění hodnotu proměnné a poté zobrazují nová hodnota.
Chcete-li smazat hodnotu proměnné, použijte Clear-Variable
rutinu nebo změňte hodnotu ue to $null
.
Smazání proměnné , použijte Remove-Variable nebo Remove-Item.
Typy proměnných
Do proměnné můžete uložit jakýkoli typ objektu, včetně celých čísel, řetězců, polí a hash tabulek. A objekty, které představují procesy, služby, protokoly událostí a počítače.
Proměnné prostředí PowerShell jsou volně psané, což znamená, že nejsou omezeny na konkrétní typ objektu. Jedna proměnná může dokonce obsahovat kolekci, nebo pole různých typů objektů současně.
Datový typ proměnné je určen typy .NET hodnot proměnné. Chcete-li zobrazit typ objektu proměnné, použijte Get – Člen.
Například:
Můžete použít atribut typu a vložit notaci, abyste zajistili, že proměnná může obsahovat pouze konkrétní typy objektů nebo objekty, které lze převést na tento typ.Pokud se pokusíte přiřadit hodnotu jiného typu, pokusí se PowerShell převést hodnotu na svůj typ. Pokud typ nelze převést, selže přiřazovací příkaz.
Chcete-li použít castovací notaci, zadejte název typu uzavřený v závorkách před název proměnné (na levé straně příkazu přiřazení). Následující příklad vytvoří proměnnou $number
, která může obsahovat pouze celá čísla, proměnnou $words
, která může obsahovat pouze řetězce, a $dates
proměnná, která může obsahovat pouze objekty DateTime.
Použití proměnných v příkazech a výrazech
Chcete-li použít proměnnou v příkazu nebo výrazu, zadejte název proměnné, před kterým je znak dolaru ($
).
Pokud název proměnné a znak dolaru nejsou uvedeny v uvozovkách, nebo pokud jsou uvedeny v uvozovkách ("
), t Hodnota proměnné je použita v příkazu nebo výrazu.
Pokud jsou název proměnné a znak dolaru uzavřeny v jednoduchých uvozovkách ("
), název proměnné se ve výrazu používá.
Další informace o použití uvozovek v prostředí PowerShell naleznete v seeabout_Quoting_Rules.
Tento příklad získá hodnotu $PROFILE
proměnná, což je cesta k souboru uživatelského profilu prostředí PowerShell v konzole PowerShell.
V tomto například jsou zobrazeny dva příkazy, které mohou otevřít profil PowerShell innotepad.exe. Příklad s uvozovkami ("
) používá proměnnou „svalue.
Následující příklady používají single-quote ("
) značky, které zacházejí s proměnným asliterálním textem.
Názvy proměnných, které obsahují speciální znaky
Názvy proměnných začínají dolarem ( $
) podepsat a může obsahovat alfanumerické znaky a speciální znaky. Délka názvu proměnné je omezena pouze dostupnou pamětí.
Doporučeným postupem je, aby názvy proměnných obsahovaly pouze alfanumerické znaky a znak podtržítka (_
). Názvy proměnných, které obsahují mezery a další speciální znaky, se obtížně používají a je třeba se jim vyhnout.
Alfanumerické názvy proměnných mohou tyto znaky obsahovat :
- Znaky Unicode z těchto kategorií: Lu, Ll, Lt, Lm, L o nebo Nd.
- znak podtržítka (
_
). - otazník (
?
) znak.
Následující seznam obsahuje popisy kategorií Unicode. Další informace najdete v UnicodeCategory.
- Lu – UppercaseLetter
- Ll – LowercaseLetter
- Lt – TitlecaseLetter
- Lm – ModifierLetter
- Lo – OtherLetter
- Nd – DecimalDigitNumber
Chcete-li vytvořit nebo zobrazit název proměnné, který obsahuje mezery nebo speciální znaky, uzavřete název proměnné složené závorky ({}
) znaky. Kudrnaté složené závorky směřují PowerShell k interpretaci znaků názvu proměnné jako literály.
Názvy proměnných speciálních znaků mohou obsahovat tyto znaky:
Následující příkaz například vytvoří proměnnou s názvem save-items
. Jsou nutné závorky ({}
), protože název proměnné obsahuje pomlčka (-
) speciální znak.
Následující příkaz získá podřízené položky v adresáři, který je reprezentován ProgramFiles(x86)
enviro proměnná nmentu.
Chcete-li odkázat na název proměnné, který obsahuje složené závorky, uzavřete do složených závorek název proměnné a pomocí znaku zpětného proužku unikněte složeným závorkám. Například vytvořte proměnnou s názvem this{value}is
type:
Proměnné a obor
Ve výchozím nastavení jsou proměnné k dispozici pouze v oboru, ve kterém jsou vytvořeny.
Například proměnná, kterou vytvoříte ve funkci, je k dispozici pouze withinthe function. Proměnná, kterou vytvoříte ve skriptu, je k dispozici pouze ve skriptu. Pokud skript vytvoříte z tečky, proměnná se přidá do aktuálního rozsahu. Další informace najdete v about_Scopes.
Můžete použít modifikátor oboru pro změnu výchozího rozsahu proměnné. Následující výraz vytvoří proměnnou s názvem Computers
. Proměnná má aglobální rozsah, i když je vytvořena ve skriptu nebo funkci.
U každého skriptu nebo příkazu, který se provádí mimo relaci, potřebujete k vložení proměnné Using
modifikátor oboru hodnoty z rozsahu volající relace, aby k nim měl přístup kód relace.
Další informace najdete v tématu about_Remote_Variables.
Ukládání proměnných
Proměnné, které vytvoříte jsou k dispozici pouze v relaci, ve které jste vytvořili. Při ukončení relace se ztratí.
Chcete-li vytvořit proměnnou v každé relaci PowerShellu, kterou spustíte, přidejte proměnnou do svého profilu PowerShell.
Chcete-li například změnit hodnotu proměnné $VerbosePreference
v relaci everyPowerShell přidejte do svého profilu PowerShell následující příkaz.
Můžete přidat tento příkaz do vašeho profilu PowerShell otevřením souboru $PROFILE
v textovém editoru, jako je například notepad.exe. Další informace o profilech PowerShell najdete v části about_Profiles.
Proměnná: jednotka
Poskytovatel proměnných PowerShell vytvoří jednotku Variable:
, která vypadá a funguje jako jednotka systému souborů, ale obsahuje proměnné ve vaší relaci a jejich hodnoty.
Chcete-li přejít na jednotku Variable:
, použijte následující příkaz:
Do seznamu položky a proměnné v jednotce Variable:
, použijte nebo Get-ChildItem
rutiny.
Chcete-li získat hodnotu konkrétní proměnné, použijte označení systému souborů k určení názvu jednotky a názvu proměnné. Chcete-li například získat automatickou proměnnou $PSCulture
, použijte následující příkaz.
Chcete-li zobrazit více informací o jednotce Variable:
a poskytovateli PowerShellVariable, zadejte:
Proměnlivá syntaxe s cestami poskytovatele
Cestu poskytovatele můžete předponovat znakem dolaru ($
) a získat přístup k obsahu jakéhokoli poskytovatele, který implementuje rozhraní ICIContentCmdletProvider.
Následující integrovaní poskytovatelé prostředí PowerShell podporují tuto notaci:
- about_Environment_Provider
- about_Variable_Provider
- about_Function_Provider
- about_Alias_Provider
Proměnné rutiny
PowerShell obsahuje sadu rutin, které jsou určeny ke správě proměnných.
Chcete-li zobrazit seznam rutin, zadejte:
Chcete-li získat nápovědu pro konkrétní rutinu, zadejte:
Název rutiny | Popis |
---|---|
Clear-Variable |
Odstraní hodnotu proměnné. |
Get-Variable |
Získá proměnné v aktuální konzole. |
New-Variable |
Vytvoří novou proměnnou. |
Remove-Variable |
Odstraní proměnnou a její hodnotu. |
Set-Variable |
Změní hodnotu proměnné. |
Viz také
about_Automatic_Variables
about_Environment_Variables