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 programie 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. Tworzenie zmiennej

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

New-Variable -Name "zipcode" -Value 98033

To polecenie tworzy zmienną o nazwie zipcode i przypisuje jej 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ć 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 jej zmienić ani usunąć.

Przykład 5. Tworzenie zmiennej prywatnej

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.

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
...

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. Tworzenie zmiennej z spacją

W tym przykładzie pokazano, ż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.

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

Parametry

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Określa opis zmiennej.

Type:String
Position:Named
Default value:None
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
Accept pipeline input:False
Accept wildcard characters:False

-Name

Określa nazwę nowej zmiennej.

Type:String
Position:0
Default value:None
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 to None.
  • 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 na Constant.

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 tabulatorów na wartościach.

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
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
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. Local jest zakresem domyślnym, gdy nie określono parametru zakresu.
  • Script — Zmienne utworzone w zakresie skryptu są dostępne tylko w pliku skryptu lub module, w ramach którego są tworzone.
  • 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.

Uwaga

Parametr akceptuje również wartość Private. Private nie jest w rzeczywistości zakresem, ale opcjonalnym ustawieniem zmiennej. Jednak użycie Private wartości z tym poleceniem cmdlet nie zmienia widoczności zmiennej. Aby uzyskać więcej informacji, zobacz about_Scopes.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Value

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

Type:Object
Position:1
Default value:None
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 to Public.
  • Private - Zmienna nie jest widoczna.

Gdy zmienna jest prywatna, nie jest wyświetlana na listach zmiennych, takich jak te zwracane przez Get-Variableelement 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
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
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

Object

Możesz przekazać New-Variablewartość do .

Dane wyjściowe

None, System.Management.Automation.PSVariable

To polecenie cmdlet zwraca obiekt PSVariable reprezentujący nową zmienną, jeśli określisz parametr PassThru . W przeciwnym razie nie zwraca żadnych danych wyjściowych.