Udostępnij za pomocą


New-Variable

Tworzy nową zmienną.

Składnia

Default (domyślnie)

New-Variable
    [-Name] <String>
    [[-Value] <Object>]
    [-Description <String>]
    [-Option <ScopedItemOptions>]
    [-Visibility <SessionStateEntryVisibility>]
    [-Force]
    [-PassThru]
    [-Scope <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Opis

Polecenie cmdlet New-Variable tworzy nową zmienną w programie Windows PowerShell. Wartość można przypisać do zmiennej podczas jej tworzenia lub przypisywać lub zmieniać wartość po jej utworzeniu.

Za pomocą parametrów New-Variable można ustawić właściwości zmiennej, ustawić zakres zmiennej i określić, czy zmienne są publiczne, czy prywatne.

Zazwyczaj nową zmienną tworzy się, wpisując nazwę zmiennej i jej wartość, na przykład $Var = 3, ale można użyć polecenia cmdlet New-Variable , aby użyć jej parametrów.

Przykłady

Przykład 1. Tworzenie zmiennej

PS C:\> New-Variable days

To polecenie tworzy nową zmienną o nazwie days. Nie musisz wpisywać parametru Nazwa.

Przykład 2. Tworzenie zmiennej i przypisywanie jej wartości

PS C:\> New-Variable -Name "zipcode" -Value 98033

To polecenie tworzy zmienną o nazwie zipcode i przypisuje mu wartość 98033.

Przykład 3. Tworzenie zmiennej z opcją ReadOnly

PS C:\> New-Variable -Name Max -Value 256 -Option ReadOnly
PS C:\> New-Variable -Name max -Value 1024

New-Variable : A variable with name 'max' already exists.
At line:1 char:1
+ New-Variable -Name max -Value 1024
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (max:String) [New-Variable], SessionStateException
    + FullyQualifiedErrorId : VariableAlreadyExists,Microsoft.PowerShell.Commands.NewVariableCommand

PS C:\> New-Variable -Name max -Value 1024 -Force

W tym przykładzie pokazano, jak używać opcji ReadOnly New-Variable w celu ochrony zmiennej przed zastąpieniem.

Pierwsze polecenie tworzy nową zmienną o nazwie Max i ustawia jej wartość na 256. Używa parametru Option o wartości ReadOnly.

Drugie polecenie próbuje utworzyć drugą zmienną o tej samej nazwie. To polecenie zwraca błąd, ponieważ dla zmiennej jest ustawiona opcja tylko do odczytu.

Trzecie polecenie używa parametru Force, aby zastąpić ochronę tylko do odczytu dla zmiennej. W takim przypadku polecenie utworzenia nowej zmiennej o tej samej nazwie powiedzie się.

Przykład 4: Tworzenie zmiennej prywatnej

PS C:\> New-Variable -Name counter -Visibility Private

#Effect of private variable in a module.

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"
At line:1 char:1
+ $counter
+ ~~~~~~~~
    + CategoryInfo          : PermissionDenied: (counter:String) [], SessionStateException
    + FullyQualifiedErrorId : VariableIsPrivate

PS C:\> Get-Counter
Name         Value
----         -----
Counter1     3.1415
...

To polecenie demonstruje zachowanie zmiennej prywatnej w module. Moduł zawiera Get-Counter cmdlet, który ma zmienną prywatną o nazwie Counter. Polecenie używa parametru Visibility z wartością Private w celu utworzenia zmiennej.

Przykładowe dane wyjściowe pokazują zachowanie zmiennej prywatnej. Użytkownik, który załadował moduł, nie może wyświetlić ani zmienić wartości zmiennej Counter, ale zmienna Counter może być odczytywana i zmieniana przez polecenia w module.

Przykład 5. Tworzenie zmiennej z spacją

PS C:\> New-Variable -Name 'with space' -Value 'abc123xyz'

PS C:\> Get-Variable -Name 'with space'

Name                           Value
----                           -----
with space                     abc123xyz

PS C:\> ${with space}
abc123xyz

To polecenie pokazuje, że można utworzyć zmienne z spacjami. Dostęp do zmiennych można uzyskać za pomocą polecenia cmdlet Get-Variable lub bezpośrednio, rozdzielając zmienną za pomocą nawiasów klamrowych.

Parametry

-Confirm

Prosi o potwierdzenie przed uruchomieniem cmdletu.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:por

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Description

Określa opis zmiennej.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Force

Wskazuje, że polecenie cmdlet tworzy zmienną o tej samej nazwie co istniejąca zmienna 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 .

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Name

Określa nazwę nowej zmiennej.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:0
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-Option

Określa wartość właściwości Options zmiennej. Dopuszczalne wartości tego parametru to:

  • Żaden. Nie ustawia żadnych opcji. (Domyślnym ustawieniem jest Brak).
  • Tylko do odczytu. Można usunąć. Nie można zmienić, z wyjątkiem parametru Force.
  • Prywatne. Zmienna jest dostępna tylko w bieżącym zakresie.
  • Wszystkozakres. Zmienna jest kopiowana do wszystkich nowo utworzonych zakresów.
  • Stały. Nie można go usunąć ani zmienić. Stała jest prawidłowa tylko wtedy, gdy tworzysz zmienną. Nie można zmienić opcji istniejącej zmiennej na Stałą.

Aby wyświetlić właściwość opcje wszystkich zmiennych w sesji, wpisz Get-Variable | Format-Table -Property name, options -autosize.

Właściwości parametru

Typ:ScopedItemOptions
Domyślna wartość:None
Dopuszczalne wartości:None, ReadOnly, Constant, Private, AllScope, Unspecified
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-PassThru

Zwraca obiekt reprezentujący element, z którym pracujesz. Domyślnie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Scope

Określa zakres nowej zmiennej. Dopuszczalne wartości tego parametru to:

  • Globalny. Zmienne utworzone w zakresie globalnym są dostępne wszędzie w procesie programu PowerShell.
  • Lokalny. Zakres lokalny odnosi się do bieżącego zakresu. Może to być dowolny zakres w zależności od kontekstu.
  • Skrypt. Zmienne utworzone w zakresie skryptu są dostępne tylko w pliku skryptu lub module, w których są tworzone.
  • Prywatne. Zmienne utworzone w zakresie prywatnym nie mogą być dostępne poza zakresem, w jaki istnieją. Za pomocą zakresu prywatnego można utworzyć prywatną wersję elementu o tej samej nazwie w innym zakresie.
  • Liczba względem bieżącego zakresu (od 0 do liczby zakresów, gdzie 0 jest bieżącym zakresem, 1 jest jego elementem nadrzędnym, 2 elementem nadrzędnym zakresu nadrzędnego itd.). Nie można użyć liczb ujemnych.

Wartość lokalna jest domyślnym zakresem, gdy parametr zakresu nie jest określony.

Aby uzyskać więcej informacji, zobacz about_Scopes.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Value

Określa początkową wartość zmiennej.

Właściwości parametru

Typ:Object
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:1
Obowiązkowe:False
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów: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. Dopuszczalne wartości tego parametru to:

  • Publiczna. Zmienna jest widoczna. (Domyślnym ustawieniem jest Publiczny).
  • Prywatne. Zmienna nie jest widoczna.

Gdy zmienna jest prywatna, nie jest wyświetlana na listach zmiennych, takich jak te zwracane przez zmienną 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ą.

Właściwości parametru

Typ:SessionStateEntryVisibility
Domyślna wartość:None
Dopuszczalne wartości:Public, Private
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-WhatIf

Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie jest uruchomiony.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Wi

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

Object

Wartość można potokować do New-Variable.

Dane wyjściowe

None or System.Management.Automation.PSVariable

W przypadku korzystania z parametru PassThruNew-Variable generuje System.Management.Automation.PSVariable obiekt reprezentujący nową zmienną. W przeciwnym razie to polecenie cmdlet nie generuje żadnych danych wyjściowych.