Set-Variable
Ustawia wartość zmiennej. Tworzy zmienną, jeśli ta z żądaną nazwą nie istnieje.
Składnia
Set-Variable
[-Name] <String[]>
[[-Value] <Object>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Force]
[-Visibility <SessionStateEntryVisibility>]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
Polecenie Set-Variable
cmdlet przypisuje wartość do określonej zmiennej lub zmienia bieżącą wartość. Jeśli zmienna nie istnieje, polecenie cmdlet je utworzy.
Przykłady
Przykład 1: Ustawianie zmiennej i pobieranie jej wartości
Te polecenia ustawiają wartość zmiennej $desc
na A description
, a następnie pobierają wartość zmiennej.
Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"
Name Value
---- -----
desc A description
Przykład 2. Ustawianie globalnej zmiennej tylko do odczytu
W tym przykładzie jest tworzona globalna zmienna tylko do odczytu zawierająca wszystkie procesy w systemie, a następnie wyświetla wszystkie właściwości zmiennej.
Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru |
Format-List -Property *
Polecenie używa Set-Variable
polecenia cmdlet do utworzenia zmiennej. Używa parametru PassThru do utworzenia obiektu reprezentującego nową zmienną i używa operatora potoku (|
), aby przekazać obiekt do Format-List
polecenia cmdlet. Używa parametru Format-List
Property z wartością wszystkich (*
), aby wyświetlić wszystkie właściwości nowo utworzonej zmiennej.
Wartość (Get-Process)
, jest ujęta w nawiasy, aby upewnić się, że jest wykonywana przed zapisaniem w zmiennej. W przeciwnym razie zmienna zawiera słowa Get-Process
.
Przykład 3. Omówienie zmiennych publicznych i prywatnych
W tym przykładzie pokazano, jak zmienić widoczność zmiennej na Private
. Ta zmienna może być odczytywana i zmieniana przez skrypty z wymaganymi uprawnieniami, ale nie jest widoczna dla użytkownika.
New-Variable -Name "counter" -Visibility Public -Value 26
$Counter
26
Get-Variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
Counter 26
Set-Variable -Name "counter" -Visibility Private
Get-Variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
$counter
"Cannot access the variable '$counter' because it is a private variable"
.\use-counter.ps1
#Commands completed successfully.
To polecenie pokazuje, jak zmienić widoczność zmiennej na Private. Ta zmienna może być odczytywana i zmieniana przez skrypty z wymaganymi uprawnieniami, ale nie jest widoczna dla użytkownika.
Parametry
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Description
Określa opis zmiennej.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Exclude
Określa tablicę elementów, które to polecenie cmdlet wyklucza z operacji. Wartość tego parametru kwalifikuje parametr Path . Wprowadź element ścieżki lub wzorzec, taki jak *.txt
.
Dozwolone są symbole wieloznaczne.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Force
Umożliwia utworzenie zmiennej o tej samej nazwie co istniejąca zmienna tylko do odczytu lub zmiana wartości zmiennej tylko do odczytu.
Domyślnie można zastąpić zmienną, chyba że zmienna ma wartość ReadOnly
opcji lub Constant
. Aby uzyskać więcej informacji, zobacz Parametr opcji .
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Include
Określa tablicę elementów, które zawiera to polecenie cmdlet w operacji. Wartość tego parametru kwalifikuje parametr Name . Wprowadź wzorzec nazwy lub nazwy, taki jak c*
. Dozwolone są symbole wieloznaczne.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Name
Określa nazwę zmiennej.
Typ: | String[] |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Option
Określa wartość właściwości Options zmiennej.
Prawidłowe wartości to:
None
: nie ustawia opcji. (None
jest wartością domyślną).ReadOnly
: Można usunąć. Nie można zmienić, z wyjątkiem użycia parametru Force.Constant
: Nie można usunąć ani zmienić.Constant
jest prawidłowy tylko podczas tworzenia zmiennej. Nie można zmienić opcji istniejącej zmiennej naConstant
.Private
: Zmienna jest dostępna tylko w bieżącym zakresie.AllScope
: zmienna jest kopiowana do wszystkich nowych utworzonych zakresów.
Te wartości są definiowane jako wyliczenie oparte na flagach. Możesz połączyć wiele wartości ze sobą, aby ustawić wiele flag przy użyciu tego parametru. Wartości można przekazać do parametru Option jako tablicę wartości lub jako ciąg rozdzielany przecinkami tych wartości. Polecenie cmdlet połączy wartości przy użyciu operacji binary-OR. Przekazywanie wartości jako tablicy jest najprostszą opcją, a także umożliwia użycie uzupełniania tabulatorów na wartościach.
Typ: | ScopedItemOptions |
Dopuszczalne wartości: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-PassThru
Zwraca obiekt reprezentujący nową zmienną. Domyślnie to polecenie cmdlet nie generuje żadnych danych wyjściowych.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Scope
Określa zakres zmiennej. Dopuszczalne wartości tego parametru to:
Global
Local
Script
Private
- Liczba względem bieżącego zakresu (od 0 do liczby zakresów, gdzie 0 jest bieżącym zakresem, a 1 jest jego elementem nadrzędnym).
Wartość domyślna to Local
.
Aby uzyskać więcej informacji, zobacz about_Scopes.
Typ: | String |
Position: | Named |
Domyślna wartość: | Local |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Value
Określa wartość zmiennej.
Typ: | Object |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Visibility
Określa, czy zmienna jest widoczna poza sesją, w której została utworzona. Ten parametr jest przeznaczony do użycia w skryptach i poleceniach, które zostaną dostarczone do innych użytkowników.
Prawidłowe wartości to:
Public
: Zmienna jest widoczna. (Public
jest wartością domyślną).Private
: Zmienna nie jest widoczna.
Gdy zmienna jest prywatna, nie jest wyświetlana na listach zmiennych, takich jak te zwracane przez Get-Variable
, lub w wyświetlaniu dysku Zmienna: . Polecenia odczytu lub zmiany wartości zmiennej prywatnej zwracają błąd. Użytkownik może jednak uruchamiać polecenia używające zmiennej prywatnej, jeśli polecenia zostały zapisane w sesji, w której zdefiniowano zmienną.
Typ: | SessionStateEntryVisibility |
Dopuszczalne wartości: | Public, Private |
Position: | Named |
Domyślna wartość: | Public |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Do tego polecenia cmdlet można przekazać potok obiektu reprezentującego wartość zmiennej.
Dane wyjściowe
None
Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Jeśli używasz parametru PassThru, to polecenie cmdlet zwraca obiekt PSVariable reprezentujący nową lub zmienioną zmienną.
Uwagi
Program Windows PowerShell zawiera następujące aliasy dla programu Set-Variable
:
set
sv