New-Variable
Tworzy nową zmienną.
Składnia
New-Variable
[-Name] <String>
[[-Value] <Object>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Visibility <SessionStateEntryVisibility>]
[-Force]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
Polecenie New-Variable
cmdlet tworzy nową zmienną w Windows PowerShell. Wartość można przypisać do zmiennej podczas jej tworzenia lub przypisywać lub zmieniać wartość po jej utworzeniu.
Możesz użyć parametrów New-Variable
, aby ustawić właściwości zmiennej, ustawić zakres zmiennej i określić, czy zmienne są publiczne, czy prywatne.
Zazwyczaj tworzysz nową zmienną, wpisując nazwę zmiennej i jej wartość, taką jak $Var = 3
, ale można użyć New-Variable
polecenia cmdlet do użycia jego parametrów.
Przykłady
Przykład 1: Twórca zmiennej
New-Variable days
To polecenie tworzy nową zmienną o nazwie days. Nie musisz wpisywać parametru Nazwa .
Przykład 2: Twórca zmiennej i przypisz jej wartość
New-Variable -Name "zipcode" -Value 98033
To polecenie tworzy zmienną o nazwie zipcode i przypisuje jej wartość 98033.
Przykład 3: Twórca zmienną 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ć ReadOnly
opcji ochrony zmiennej New-Variable
przed zastąpieniem.
Pierwsze polecenie tworzy nową zmienną o nazwie Max i ustawia jej wartość na 256. Używa parametru Opcja z 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 w zmiennej. W tym przypadku polecenie , aby utworzyć nową zmienną o tej samej nazwie, powiedzie się.
Przykład 4. Przypisywanie wielu opcji do zmiennej
New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant
W tym przykładzie jest tworzona zmienna i przypisuje AllScope
opcje i Constant
, dzięki czemu zmienna będzie dostępna w bieżącym zakresie i wszelkich nowych zakresach utworzonych i nie można ich zmienić ani usunąć.
Przykład 5: Twórca 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 pokazuje zachowanie zmiennej prywatnej w module. Moduł zawiera Get-Counter
polecenie cmdlet z prywatną zmienną o nazwie Counter. Polecenie używa parametru Widoczność 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 6: Twórca zmienną 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 tworzyć zmienne z spacjami. Do zmiennych można uzyskać dostęp przy użyciu Get-Variable
polecenia cmdlet lub bezpośrednio, rozdzielając zmienną z nawiasami klamrowymi.
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 |
-Force
Wskazuje, że polecenie cmdlet tworzy zmienną o takiej samej nazwie jak istniejąca zmienna 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 .
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Określa nazwę nowej 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. Dopuszczalne wartości dla tego parametru to:
None
- Nie ustawia żadnych opcji. Wartość domyślna toNone
.ReadOnly
— Można usunąć. Nie można zmienić, z wyjątkiem użycia parametru Force .Private
— Zmienna jest dostępna tylko w bieżącym zakresie.AllScope
— Zmienna jest kopiowana do wszystkich nowych utworzonych zakresów.Constant
— Nie można usunąć ani zmienić.Constant
jest prawidłowy tylko w przypadku tworzenia zmiennej. Nie można zmienić opcji istniejącej zmiennej naConstant
.
Te wartości są definiowane jako wyliczenie oparte na flagach. Możesz połączyć wiele wartości, aby ustawić wiele flag przy użyciu tego parametru. Wartości można przekazać do parametru Opcji jako tablicę wartości lub jako ciąg rozdzielany przecinkami tych wartości. Polecenie cmdlet połączy wartości przy użyciu operacji binarnej OR. Przekazywanie wartości jako tablicy jest najprostszą opcją, a także umożliwia użycie uzupełniania tabulacji wartości.
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 element, z którym pracujesz. Domyślnie to polecenie cmdlet nie generuje żadnego wyniku.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Określa zakres nowej zmiennej. Dopuszczalne wartości dla tego parametru to:
Global
— Zmienne utworzone w zakresie globalnym są dostępne wszędzie w procesie programu PowerShell.Local
- Zakres lokalny odnosi się do bieżącego zakresu, może to być dowolny zakres w zależności od kontekstu.Script
— Zmienne utworzone w zakresie skryptu są dostępne tylko w pliku skryptu lub module, w ramach którego są tworzone.Private
— Zmienne utworzone w zakresie prywatnym nie mogą być dostępne poza zakresem, w jaki istnieją. Możesz użyć zakresu prywatnego, aby 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żywać liczb ujemnych.
Local
jest zakresem domyślnym, gdy nie określono parametru zakresu.
Aby uzyskać więcej informacji, zobacz about_Scopes.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
Określa początkową 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. Dopuszczalne wartości dla tego parametru to:
Public
- Zmienna jest widoczna. Wartość domyślna toPublic
.Private
- Zmienna nie jest widoczna.
Gdy zmienna jest prywatna, nie jest wyświetlana na listach zmiennych, takich jak te zwracane przez Get-Variable
element lub w wyświetlaczach Variable:
dysku. 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: | None |
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
Możesz przekazać New-Variable
wartość do .
Dane wyjściowe
None or System.Management.Automation.PSVariable
W przypadku użycia parametru New-Variable
PassThru generuje obiekt System.Management.Automation.PSVariable reprezentujący nową zmienną. W przeciwnym razie to polecenie cmdlet nie generuje żadnych danych wyjściowych.