O zmiennych
- 09.11.2020
- 9 minut na przeczytanie
-
- S
- s
- q
Krótki opis
Opisuje, w jaki sposób zmienne przechowują wartości, które mogą być używane w PowerShell.
Długi opis
W zmiennych programu PowerShell można przechowywać wszystkie typy wartości. Na przykład zapisz wyniki poleceń i zapisz elementy używane w poleceniach i wyrażeniach, takie jak nazwy, ścieżki, ustawienia i wartości.
Zmienna to jednostka pamięci, w której przechowywane są wartości. W programie PowerShell zmienne są reprezentowane przez ciągi tekstowe rozpoczynające się od znaku dolara ($
), na przykład $a
, $process
lub $my_var
.
W nazwach zmiennych nie jest rozróżniana wielkość liter i mogą one zawierać spacje i znaki specjalne. Jednak nazwy zmiennych, które zawierają znaki specjalne i spacje są trudne w użyciu i należy ich unikać. Aby uzyskać więcej informacji, zobacz Nazwy zmiennych, które zawierają znaki specjalne.
W PowerShell jest kilka różnych typów zmiennych.
-
Zmienne utworzone przez użytkownika: zmienne utworzone przez użytkownika są tworzone i obsługiwane przez użytkownika. Domyślnie zmienne tworzone w wierszu poleceń programu PowerShell istnieją tylko wtedy, gdy okno programu PowerShell jest otwarte. Gdy okno programu PowerShell jest zamknięte, zmienne są usunięte. Aby zapisać zmienną, dodaj ją do swojego profilu PowerShell. Możesz także tworzyć zmienne w skryptach o zasięgu globalnym, skryptowym lub lokalnym.
-
Automatyczne va riables: Zmienne automatyczne przechowują stan programu PowerShell. Te zmienne są tworzone przez program PowerShell, a program PowerShell zmienia ich wartości zgodnie z wymaganiami, aby zachować ich dokładność. Użytkownicy nie mogą zmieniać wartości tych zmiennych. Na przykład zmienna
$PSHOME
przechowuje ścieżkę do katalogu instalacyjnego programu PowerShell.Aby uzyskać więcej informacji, listę i opis zmiennych automatycznych, zobacz about_Automatic_Variables.
-
Zmienne preferencji: Zmienne preferencji przechowują preferencje użytkownika dla programu PowerShell. Zmienne te są tworzone przez PowerShell i wypełniane wartościami domyślnymi. Użytkownicy mogą zmieniać wartości tych zmiennych. Na przykład zmienna
$MaximumHistoryCount
określa maksymalną liczbę wpisów w historii sesji.Aby uzyskać więcej informacji, listę i opis zmienne preferencji, zobacz about_Preference_Variables.
Praca ze zmiennymi
Aby utworzyć nową zmienną, użyj instrukcji przypisania, aby przypisać wartość do zmiennej. nie musisz deklarować zmiennej przed jej użyciem. Domyślna wartość wszystkich zmiennych to $null
.
Aby uzyskać listę wszystkich zmiennych w sesji PowerShell, wpisz Get-Variable
. Nazwy zmiennych są wyświetlane bez poprzedzającego znaku dolara ($
) używanego do odwoływania się do zmiennych.
Na przykład:
Zmienne są przydatne do przechowywania wyników poleceń.
Na przykład:
Aby wyświetlić wartość zmiennej, wpisać nazwę zmiennej poprzedzoną znakiem adollar ($
).
Na przykład:
Aby zmienić wartość zmiennej, przypisz do niej nową wartość.
Poniższe przykłady wyświetlają wartość zmiennej $MyVariable
, zmieniają wartość zmiennej, a następnie wyświetlają nowa wartość.
Aby usunąć wartość zmiennej, użyj polecenia cmdlet Clear-Variable
lub zmień wartość ue to $null
.
Aby usunąć zmienną użyj opcji Usuń zmienną lub usuń element.
Typy zmiennych
W zmiennej można przechowywać dowolny typ obiektu, w tym liczby całkowite, ciągi znaków, tablice i tabele skrótów. Oraz obiekty, które reprezentują procesy, usługi, dzienniki zdarzeń i komputery.
Zmienne PowerShell mają luźne typy, co oznacza, że nie są ograniczone do określonego typu obiektu. Pojedyncza zmienna może nawet zawierać kolekcję, lub tablicy, różnych typów obiektów w tym samym czasie.
Typ danych zmiennej jest określony przez typy .NET wartości tej zmiennej. Aby wyświetlić typ obiektu zmiennej, użyj funkcji Get- Członek.
Na przykład:
Możesz użyć atrybutu typu i notacji rzutowania, aby upewnić się, że zmienna może zawierać tylko określone typy obiektów lub obiekty, które można przekonwertować na ten typ.Jeśli spróbujesz przypisać wartość innego typu, program PowerShell spróbuje przekonwertować wartość na jej typ. Jeśli typu nie można przekonwertować, instrukcja przypisania nie powiedzie się.
Aby użyć notacji rzutowanej, wprowadź nazwę typu w nawiasach kwadratowych przed nazwą zmiennej (po lewej stronie instrukcji przypisania). Poniższy przykład tworzy zmienną $number
, która może zawierać tylko liczby całkowite, zmienną $words
, która może zawierać tylko ciągi, oraz $dates
zmienna, która może zawierać tylko obiekty DateTime.
Używanie zmiennych w poleceniach i wyrażeniach
Aby użyć zmiennej w poleceniu lub wyrażeniu, wpisz nazwę zmiennej poprzedzoną znakiem dolara ($
).
Jeśli nazwa zmiennej i znak dolara nie są ujęte w cudzysłów lub jeśli są one zawarte w cudzysłowie ("
), t Wartość zmiennej jest używana w poleceniu lub wyrażeniu.
Jeśli nazwa zmiennej i znak dolara są ujęte w pojedynczy cudzysłów ("
), nazwa zmiennej jest używany w wyrażeniu.
Aby uzyskać więcej informacji na temat używania znaków cudzysłowu w programie PowerShell, zobaczabout_Quoting_Rules.
Ten przykład pobiera wartość $PROFILE
, która jest ścieżką do pliku profilu użytkownika programu PowerShell w konsoli PowerShell.
W tym Na przykład pokazano dwa polecenia, które mogą otworzyć profil programu PowerShell innotepad.exe. W przykładzie z cudzysłowami ("
) użyto zmiennej „svalue.
W poniższych przykładach zastosowano zmienną cudzysłowy ("
) traktują zmienną jako tekst literalny.
Nazwy zmiennych zawierające znaki specjalne
Nazwy zmiennych zaczynają się od dolara ( $
) i może zawierać znaki alfanumeryczne i specjalne. Długość nazwy zmiennej jest ograniczona tylko dostępną pamięcią.
Najlepszą praktyką jest to, że nazwy zmiennych zawierają tylko znaki alfanumeryczne i znak podkreślenia (_
). Nazwy zmiennych zawierające spacje i inne znaki specjalne są trudne w użyciu i należy ich unikać.
Alfanumeryczne nazwy zmiennych mogą zawierać te znaki :
- Znaki Unicode z następujących kategorii: Lu, Ll, Lt, Lm, L o lub Nd.
- Znak podkreślenia (
_
). - Znak zapytania (
?
).
Poniższa lista zawiera opisy kategorii Unicode. Aby uzyskać więcej informacji, zobacz kategorię Unicode.
- Lu – UppercaseLetter
- Ll – LowercaseLetter
- Lt – TitlecaseLetter
- Lm – ModifierLetter
- Lo – OtherLetter
- Nd – DecimalDigitNumber
Aby utworzyć lub wyświetlić nazwę zmiennej, która zawiera spacje lub znaki specjalne, należy ująć nazwę zmiennej krzyżykiem nawiasy klamrowe ({}
) znaki. Nawiasy klamrowe bezpośrednio PowerShell interpretuje znaki nazwy zmiennej jako literały.
Nazwy zmiennych ze znakami specjalnymi mogą zawierać następujące znaki:
Na przykład poniższe polecenie tworzy zmienną o nazwie save-items
. Nawiasy klamrowe ({}
) są potrzebne, ponieważ nazwa zmiennej zawiera łącznik (-
) znak specjalny.
Następujące polecenie pobiera elementy podrzędne w katalogu reprezentowanym przez ProgramFiles(x86)
enviro nment zmiennej.
Aby odwołać się do nazwy zmiennej zawierającej nawiasy klamrowe, umieść nazwę zmiennej w nawiasach i użyj znaku odwrotnego znaku, aby zmienić znaczenie nawiasów. Na przykład, aby utworzyć zmienną o nazwie this{value}is
type:
Zmienne i zakres
Domyślnie zmienne są dostępne tylko w zakresie, w którym zostały utworzone.
Na przykład zmienna utworzona w funkcji jest dostępna tylko w funkcji. Zmienna, którą tworzysz w skrypcie, jest dostępna tylko w skrypcie. Jeśli utworzysz skryptu za pomocą kropki, zmienna zostanie dodana do bieżącego zakresu. Aby uzyskać więcej informacji, zobacz about_Scopes.
Możesz użyć modyfikator zasięgu do zmiany domyślnego zakresu zmiennej. Poniższe wyrażenie tworzy zmienną o nazwie Computers
. Zmienna ma zasięg globalny, nawet jeśli została utworzona w skrypcie lub funkcji.
Dla każdego skryptu lub polecenia, które są wykonywane poza sesją, potrzebujesz modyfikatora zakresu Using
, aby osadzić zmienną wartości z zakresu sesji wywołującej, tak aby kod sesji miał do nich dostęp.
Aby uzyskać więcej informacji, zobacz about_Remote_Variables.
Zapisywanie zmiennych
Zmienne, które tworzysz są dostępne tylko w sesji, w której je tworzysz. Są one tracone po zamknięciu sesji.
Aby utworzyć zmienną w każdej rozpoczynanej sesji PowerShell, dodaj zmienną do swojego profilu PowerShell.
Na przykład, aby zmienić wartość zmiennej $VerbosePreference
w każdej sesji programu PowerShell dodaj następujące polecenie do swojego profilu programu PowerShell.
Możesz dodać to polecenie do swojego profilu PowerShell, otwierając plik $PROFILE
w edytorze tekstu, takim jak notepad.exe. Aby uzyskać więcej informacji na temat profili PowerShell, zobacz about_Profiles.
Zmienna: dysk
Dostawca zmiennych programu PowerShell tworzy dysk Variable:
, który wygląda i działa jak dysk systemu plików, ale zawiera zmienne w sesji i ich wartości.
Aby przejść na dysk Variable:
, użyj następującego polecenia:
Aby wyświetlić elementy i zmienne na dysku Variable:
, użyj lub Get-ChildItem
poleceń cmdlet.
Aby uzyskać wartość określonej zmiennej, użyj notacji systemu plików, aby określić nazwę napędu i nazwę zmiennej. Na przykład, aby uzyskać automatyczną zmienną $PSCulture
, użyj następującego polecenia.
Aby wyświetlić więcej informacji o dysku Variable:
i dostawcy PowerShellVariable, wpisz:
Zmienna składnia ze ścieżkami dostawców
Możesz poprzedzić ścieżkę dostawcy znakiem dolara ($
) i uzyskać dostęp do zawartości dowolnego dostawcy, który implementuje interfejs IContentCmdletProvider.
Następujący wbudowani dostawcy PowerShell obsługują tę notację:
- about_Environment_Provider
- about_Variable_Provider
- about_Function_Provider
- about_Alias_Provider
Zmienne polecenia cmdlet
PowerShell zawiera zestaw poleceń cmdlet przeznaczonych do zarządzania zmiennymi.
Aby wyświetlić listę poleceń cmdlet, wpisz:
Aby uzyskać pomoc dotyczącą konkretnego polecenia cmdlet, wpisz:
Nazwa cmdletu | Opis |
---|---|
Clear-Variable |
Usuwa wartość zmiennej. |
Get-Variable |
Pobiera zmienne w bieżącej konsoli. |
New-Variable |
Tworzy nową zmienną. |
Remove-Variable |
Usuwa zmienną i jej wartość. |
Set-Variable |
Zmienia wartość zmiennej. |
Zobacz też
about_Automatic_Variables
about_Environment_Variables