Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Назначение: Windows PowerShell 2.0, Windows PowerShell 3.0
РАЗДЕЛ
about_Variables
КРАТКОЕ ОПИСАНИЕ
В этом разделе описывается, как переменные хранят значения, которые могут использоваться в Windows PowerShell®.
ПОДРОБНОЕ ОПИСАНИЕ
Вы можете хранить все типы значений в переменных Windows PowerShell. Обычно они используются для хранения результатов команд и элементов, применяемых в командах и выражениях, таких как имена, пути, параметры и значения.
Переменная — это единица памяти, в которой хранятся значения. В Windows PowerShell переменные представлены в виде текстовых строк, которые начинаются со знака доллара ($), например $a, $process и $my_var.
Имена переменных не учитывают регистр. Имена переменных могут содержать пробелы и специальные символы, но их трудно использовать и следует избегать.
В Windows PowerShell существует несколько различных типов переменных.
Созданные пользователем переменные:
эти переменные создаются и настраиваются пользователем. По умолчанию переменные, которые создаются в командной строке Windows PowerShell, существуют, только когда окно Windows PowerShell открыто, и они будут потеряны при закрытии окна. Чтобы сохранить переменную, добавьте ее в профиль Windows PowerShell. Кроме того, можно создать переменные в скриптах с глобальной, локальной областью или областью скрипта.
Автоматические переменные:
в этих переменных хранится состояние Windows PowerShell. Они создаются Windows PowerShell, а Windows PowerShell изменяет их значения для обеспечения их точности. Пользователи не могут изменять значения этих переменных. Например, в переменной $PSHome хранится путь к каталогу установки Windows PowerShell.
Дополнительные сведения, список и описание автоматических переменных см. в разделе about_Automatic_Variables.
Переменные настроек:
в этих переменных хранятся пользовательские настройки для Windows PowerShell. Они создаются Windows PowerShell и заполняются значениями по умолчанию. Пользователи могут изменять значения этих переменных. Например, переменная $MaximumHistoryCount определяет максимальное число записей в журнале сеанса.
Дополнительные сведения, список и описание переменных настроек см. в разделе about_Preference_Variables.
РАБОТА С ПЕРЕМЕННЫМИ
Чтобы создать новую переменную, используйте оператор присваивания для указания значения переменной. Необязательно объявлять переменную перед ее использованием. Значение по умолчанию всех переменных — $null.
Например:
PS> $MyVariable = 1, 2, 3
PS> $path = "C:\Windows\System32"
Переменные очень полезны для хранения результатов команд.
Например:
PS> $processes = Get-Process
PS> $Today = (Get-Date).date
Чтобы отобразить значение переменной, введите ее имя, добавив в начало знак доллара ($).
Например:
PS> $MyVariable
1
2
3
PS> $Today
Thursday, September 03, 2009 12:00:00 AM
Чтобы изменить переменную, присвойте ей новое значение.
Следующие примеры отображают значение переменной $MyVariable, изменяют значение переменной, а затем отображают новое значение.
PS> $MyVariable
1
2
3
PS> $MyVariable = "The green cat."
PS> $MyVariable
The green cat.
Чтобы удалить значение переменной, используйте командлет Clear-Variable или измените значение на $null.
PS> Clear-Variable -name MyVariable
-or-
PS> $MyVariable = $null
Чтобы удалить переменную, используйте командлеты Remove-Variable или Remove-Item. (Они обсуждаются далее в этом разделе.)
PS> remove-variable -name MyVariable
PS> remove-item -path variable:\myvariable
Чтобы получить список всех переменных в сеансе Windows PowerShell, введите:
get-variable
ТИПЫ ПЕРЕМЕННЫХ
В переменной можно хранить объект любого типа, в том числе целые числа, строки, массивы, хэш-таблицы и объекты, представляющие процессы, службы, журналы событий и компьютеры.
Переменные Windows PowerShell "слабо типизированы", т. е. они не ограничиваются конкретным типом объекта. Одна переменная может содержать коллекцию ("массив") различных типов объектов одновременно.
Тип данных переменной, а именно тип .NET Framework, определяется типами .NET значений переменной.
Например:
PS> $a = 12 (System.Int32)
PS> $a = "Word" (System.String)
PS> $a = 12, "Word" (System.Int32, System.String)
PS> $a = dir C:\Windows\System32 (Files and folders)
Вы можете использовать атрибут типа и нотацию приведения, чтобы переменная могла содержать только объекты заданного типа или объекты, которые можно преобразовать в этот тип. При попытке присвоить значение другого типа Windows PowerShell пытается преобразовать значение в этот тип. В противном случае оператор присваивания завершается ошибкой.
Чтобы использовать нотацию, введите имя типа, заключенное в квадратные скобки, перед именем переменной (в левой части оператора присваивания). Следующий пример создает переменную $number, которая может содержать только целые числа, переменную $words, которая может содержать только строки, и переменную $dates, которая может содержать только объекты типа DateTime.
PS> [int]$number = 8
PS> $a = "12345" (The string is converted to an integer.)
PS> $a = "Hello"
Cannot convert value "Hello" to type "System.Int32". Error: "Input string was not in a correct format."
At line:1 char:3
+ $a <<<< = "Hello"
+ CategoryInfo : MetadataError: (:) [], ArgumentTransformationMetadataException
+ FullyQualifiedErrorId : RuntimeException
PS> [string]$words = "Hello"
PS> $words = 2 (The integer is converted to a string.)
PS> $words + 10 (The strings are concatenated.)
210
PS> [datetime] $dates = "09/12/91" (The string is converted to a DateTime object.)
PS> $dates
Thursday, September 12, 1991 12:00:00 AM
PS> $dates = 10 (The integer is converted to a DateTime object.)
PS> $dates
Monday, January 01, 0001 12:00:00 AM
ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННЫХ В КОМАНДАХ И ВЫРАЖЕНИЯХ
Чтобы использовать переменную в команде или выражении, введите имя переменной с предшествующим знаком доллара ($).
Если переменной имя (и знак доллара) не заключены в кавычки или заключены в двойные кавычки (""), в команде или выражении используется значение переменной.
Если имя переменной (и знак доллара) заключено в одинарные кавычки ('), в выражении используется имя переменной.
Например, первая команда получает значение переменной $profile, а именно путь к файлу профиля пользователя Windows PowerShell в консоли Windows PowerShell. Вторая команда открывает файл в Блокноте, а третья и четвертая команды используют имя переменной в выражении.
PS> $profile
C:\Documents and Settings\User01\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PS> notepad $profile
- or -
PS> notepad "$profile"
C:\Documents and Settings\User01\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PS> '$profile'
$profile
PS> 'Use the $profile variable.'
Use the $profile variable.
Дополнительные сведения об использовании кавычек в Windows PowerShell см. в разделе about_Quoting_Rules.
ИМЕНА ПЕРЕМЕННЫХ, КОТОРЫЕ СОДЕРЖАТ СПЕЦИАЛЬНЫЕ СИМВОЛЫ
Имена переменных начинаются со знака доллара. Они могут содержать буквы, цифры и специальные символы. Длина имени переменной ограничена только объемом доступной памяти.
Когда это возможно, имена переменных должны содержать только буквенно-цифровые символы и символ подчеркивания (_). Имена переменных могут содержать пробелы и специальные символы, но их трудно использовать и следует избегать.
Чтобы создать или показать имя переменной, которое содержит пробелы или специальные символы, заключите имя переменной в фигурные скобки. Тогда Windows PowerShell буквально интерпретирует символы в имени переменной.
Например, следующая команда создает и отображает переменную с именем "save-items".
C:\PS> ${save-items} = "a", "b", "c"
C:\PS> ${save-items}
a
b
c
Следующая команда возвращает дочерние элементы в каталоге, представленном переменной среды "ProgramFiles(x86)".
C:\PS> Get-childitem ${env:ProgramFiles(x86)}
Для указания ссылки на имя переменной, которая содержит фигурные скобки, заключите имя в фигурные скобки и используйте escape-символ обратного апострофа. Например, чтобы создать переменную с именем "this{value}is" со значением 1, введите:
C:\PS> ${this`{value`}is} = 1
C:\PS> ${this`{value`}is}
1
ПЕРЕМЕННЫЕ И ОБЛАСТИ
По умолчанию переменные доступны только в области, в которой они были созданы.
Например, переменная, которая создается в функции, доступна только в функции. Переменная, которая создается в скрипте, доступна только в скрипте (если не указать имя скрипта через точку, что добавляет его в текущую область).
Чтобы изменить область переменной по умолчанию, можно использовать модификатор области. Следующее выражение создает переменную с именем "Computers". Переменная имеет глобальную область, даже если она создается в скрипте или функции.
$global:computers = "Server01"
Дополнительные сведения см. в разделе about_Scopes.
СОХРАНЕНИЕ ПЕРЕМЕННЫХ
Переменные доступны только в сеансе, в котором они созданы. Они будут потеряны при закрытии сеанса.
Для создания в каждом открываемом сеансе Windows PowerShell добавьте переменную в профиль Windows PowerShell.
Например, чтобы изменить значение переменной $VerbosePreference в каждом сеансе Windows PowerShell, добавьте следующую команду в профиль Windows PowerShell.
$VerbosePreference = "Continue"
Эту команду можно добавить в профиль, открыв файл профиля в текстовом редакторе, таком как Блокнот. Дополнительные сведения о профилях Windows PowerShell см. в разделе about_profiles.
ДИСК "VARIABLE:"
Поставщик переменных Windows PowerShell диск "Variable:", который выглядит и работает как диск файловой системы, но содержит переменные сеанса и соответствующие значения.
Для изменения диска "Variable:" введите следующую команду:
set-location variable:
(or "cd variable:")
Для получения списка элементов (переменных) на диске "Variable:" используйте командлет Get-Item или Get-ChildItem. Например:
get-childitem variable:
(or "dir" or "ls")
Чтобы получить значение определенной переменной, используйте нотацию файловой системы для указания диска и переменной. Например, чтобы получить автоматическую переменную $PSCulture, используйте следующую команду.
get-item variable:\PSCulture
Name Value
---- -----
PSCulture en-US
Для получения дополнительных сведений о диске "Variable:" и поставщике переменных Windows PowerShell введите команду "get-help variable".
КОМАНДЛЕТЫ ПЕРЕМЕННЫХ
Windows PowerShell содержит набор командлетов, предназначенных для управления переменными.
Cmdlet Name Description
----------- -----------
Clear-Variable Deletes the value of a variable.
Get-Variable Gets the variables in the current console.
New-Variable Creates a new variable.
Remove-Variable Deletes a variable and its value.
Set-Variable Changes the value of a variable.
Чтобы получить справку для этих командлетов, введите: "Get-Help <имя_командлета>".
СМ. ТАКЖЕ
about_Automatic_Variables
about_Environment_Variables
about_Preference_Variables
about_Profiles
about_Quoting_Rules
about_Scopes