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 cmdlet Set-Variable przypisuje wartość do określonej zmiennej lub zmienia bieżącą wartość. Jeśli zmienna nie istnieje, polecenie cmdlet go utworzy.
Przykłady
Przykład 1. Ustawianie zmiennej i pobieranie jej wartości
PS C:\> Set-Variable -Name "desc" -Value "A description"
PS C:\> Get-Variable -Name "desc"
Te polecenia ustawiają wartość zmiennej desc na opis, a następnie pobierają wartość zmiennej.
Przykład 2. Ustawianie globalnej zmiennej tylko do odczytu
PS C:\> Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru | Format-List -Property *
To polecenie tworzy globalną zmienną tylko do odczytu zawierającą wszystkie procesy w systemie, a następnie wyświetla wszystkie właściwości zmiennej.
Polecenie używa polecenia cmdlet Set-Variable do utworzenia zmiennej. Używa parametru PassThru do utworzenia obiektu reprezentującego nową zmienną i używa operatora potoku (|) do przekazania obiektu do polecenia cmdlet Format-List. Używa parametru Property Format-List z wartością all (*) do wyświetlania wszystkich 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
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.
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.
Przykładowe dane wyjściowe pokazują różnicę w zachowaniu zmiennych publicznych i prywatnych.
Parametry
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Określa opis zmiennej.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Umożliwia utworzenie zmiennej o takiej samej nazwie jak 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ść opcji ReadOnly lub Constant. Aby uzyskać więcej informacji, zobacz Parametr opcji .
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Określa tablicę elementów, które to polecenie cmdlet zawiera w operacji.
Wartość tego parametru kwalifikuje parametr Name .
Wprowadź nazwę lub wzorzec nazwy, taki jak c*
.
Dozwolone są symbole wieloznaczne.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Name
Określa nazwę zmiennej.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Option
Określa wartość właściwości Options zmiennej.
Prawidłowe wartości:
- Brak: nie ustawia żadnych opcji. ("Brak" jest wartością domyślną).
- ReadOnly: Można usunąć. Nie można zmienić, z wyjątkiem użycia parametru Force.
- Stała: nie można usunąć ani zmienić. Wartość "Stała" jest prawidłowa tylko wtedy, gdy tworzysz zmienną. Nie można zmienić opcji istniejącej zmiennej na "Stała".
- Prywatny: zmienna jest dostępna tylko w bieżącym zakresie.
- AllScope: zmienna jest kopiowana do wszystkich nowych utworzonych zakresów.
Aby wyświetlić właściwość Options wszystkich zmiennych w sesji, wpisz Get-Variable | Format-Table -Property name, options -Autosize
.
Type: | ScopedItemOptions |
Accepted values: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Zwraca obiekt reprezentujący nową zmienną. Domyślnie to polecenie cmdlet nie generuje żadnego wyniku.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Określa zakres zmiennej. Dopuszczalne wartości tego parametru to:
- Globalnie
- Lokalne
- Skrypt
- Prywatne
- 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).
Ustawienie lokalne jest wartością domyślną.
Aby uzyskać więcej informacji, zobacz about_Scopes.
Type: | String |
Position: | Named |
Default value: | Local |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
Określa wartość zmiennej.
Type: | Object |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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:
- Publiczny: zmienna jest widoczna. ("Public" jest wartością domyślną).
- Prywatny: zmienna nie jest widoczna.
Gdy zmienna jest prywatna, nie jest wyświetlana na listach zmiennych, takich jak te zwracane przez zmienną Get lub wyświetlane na dysku Zmienna:. Polecenia odczytu lub zmiany wartości zmiennej prywatnej zwracają błąd. Jednak użytkownik może uruchamiać polecenia, które używają zmiennej prywatnej, jeśli polecenia zostały napisane w sesji, w której zdefiniowano zmienną.
Type: | SessionStateEntryVisibility |
Accepted values: | Public, Private |
Position: | Named |
Default value: | Public |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Obiekt reprezentujący wartość zmiennej można przekazać potokiem do zmiennej Set-Variable.
Dane wyjściowe
None or System.Management.Automation.PSVariable
W przypadku użycia parametru PassThruset-variable generuje obiekt System.Management.Automation.PSVariable reprezentujący nową lub zmienioną zmienną. W przeciwnym razie to polecenie cmdlet nie generuje żadnych danych wyjściowych.