Преобразует строку, содержащую одну или несколько пар типа ключ-значение в хэш-таблицу.

Синтаксис

ConvertFrom-StringData [-StringData] <string> [<CommonParameters>]

Описание

Командлет ConvertFrom-StringData преобразует строку, содержащую одну или несколько пар ключ-значение в хэш-таблицу. Поскольку каждая пара ключ-значение должна располагаться в отдельной строке, в качестве формата ввода часто используются автономные строки.

Командлет ConvertFrom-StringData считается безопасным командлетом, который можно использовать в разделе DATA скрипта или функции. При использовании в разделе DATA содержимое строки должно соответствовать правилам раздела DATA. Дополнительные сведения см. в разделе about_Data_Sections.

Параметры

-StringData <string>

Задает строку, подлежащую преобразованию. Можно использовать этот параметр или передавать строку командлету ConvertFrom-StringData с помощью конвейера. Имя параметра указывать необязательно.

Значением этого параметра должна быть строка, заключенная в одиночные кавычки, или строка, заключенная в двойные кавычки, или автономная строка, содержащая одну или несколько пар ключ-значение. Каждая пара ключ-значение должна быть расположена на отдельной строке или отделена знаком новой строки (`n).

В строку можно включать комментарии, но они не должны находиться на одной строке с парой ключ-значение. Комментарии не включаются в хэш-таблицу.

Автономная строка — это строка, содержащая одну или несколько строк с кавычками, которые интерпретируются посимвольно. Дополнительные сведения см. в разделе about_Quoting_Rules.

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue)

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

System.String

Можно передать строку, содержащую пару ключ-значение, командлету ConvertFrom-StringData по конвейеру.

Выходные данные

System.Collections.Hashtable

Командлет ConvertFrom-StringData возвращает хэш-таблицу, созданную из пар ключ-значение.

Примечания

Автономная строка — это строка, содержащая одну или несколько строк с кавычками, которые интерпретируются посимвольно. Дополнительные сведения см. в разделе about_Quoting_Rules.

Командлет ConvertFrom-StringData может оказаться полезным в скриптах, предполагающих отображение сообщений пользователей на нескольких языках. Хэш-таблицы, напоминающие словари, позволяют изолировать текстовые строки от кода, например в файлах ресурсов, и форматировать текстовые строки для использования в средствах перевода.

Пример 1

C:\PS>$here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@

C:\PS> convertfrom-stringdata -stringdata $here

Name                           Value
----                           -----
Msg3                           The specified variable does not exist.
Msg2                           Credentials are required for this command.
Msg1                           The string parameter is required.

Описание
-----------
Эти команды преобразуют автономные строки с сообщениями в одиночных кавычках в хэш-таблицу. В строках с одиночными кавычками значения переменных не подставляются и выражения не вычисляются.

Первая команда создает автономную строку и сохраняет ее в переменной $here. 

Вторая команда использует командлет ConvertFrom-StringData, чтобы преобразовать автономную строку из переменной $here в хэш-таблицу.






Пример 2

C:\PS>$p = @"
ISE = Windows PowerShell Integrated Scripting Environment
"@

C:\PS> $p | get-member

   TypeName: System.String

Name             MemberType            Definition
----             ----------            ----------
Clone            Method                System.Object Clone()
...


C:\PS> $hash = convertfrom-stringdata -stringdata $p

C:\PS> $hash | get-member

   TypeName: System.Collections.Hashtable

Name              MemberType            Definition
----              ----------            ----------
Add               Method                System.Void Add(Object key, Object
...

Описание
-----------
Эта команда показывает, что командлет ConvertFrom-StringData преобразовывает автономную строку в хэш-таблицу.

Первая команда создает заключенную в двойные кавычки автономную строку, содержащую одну пару ключ-значение, и сохраняет ее в переменной $p. 

Вторая команда с помощью оператора конвейера (|) передает переменную $p командлету Get-Member. Результат показывает, что переменная $p является строкой (System.String).

Третья команда использует командлет ConvertFrom-StringData, чтобы преобразовать автономную строку в переменной $p в хэш-таблицу. Эта команда сохраняет результат в переменной $hash.

Последняя команда с помощью оператора конвейера (|) передает переменную $hash командлету Get-Member. Результат показывает, что содержимое переменной $hash является хэш-таблицей (System.Collections.Hashtable).






Пример 3

C:\PS>convertfrom-stringdata -stringdata @'
   Name = Disks.ps1
   # Category is optional.
   Category = Storage
   Cost = Free
'@

Name                           Value
----                           -----
Cost                           Free
Category                       Storage
Name                           Disks.ps1

Описание
-----------
Эта команда преобразует автономную строку с одиночными кавычками, содержащую несколько пар ключ-значение, в хэш-таблицу. 

В этой команде значением параметра StringData является автономная строка, а не переменная, содержащая автономную строку. Допустимы оба формата.

Автономная строка содержит примечание об одной из строк. В строках можно использовать примечания, при условии что они не расположены на одной строке с парой ключ-значение.






Пример 4

C:\PS>$a = convertfrom-stringdata -stringdata "Top = Red `n Bottom = Blue"

C:\PS> "Top = " + $a.Top
Top = Red

C:\PS> "Bottom = " + $a.Bottom
Bottom = Blue

Описание
-----------
В этом примере обычная заключенная в двойные кавычки строка (не автономная строка) преобразуется в хэш-таблицу и сохраняется в переменной $a.

Чтобы выполнить требование о необходимости размещения каждой пары ключ-значение на отдельной строке, в нем для разделения пар используется знак новой строки Windows PowerShell (`n).

Результатом является хэш-таблица входных строк. Оставшиеся команды служат для вывода результата.






Пример 5

C:\PS>$TextMsgs = DATA {
  ConvertFrom-StringData @'
	Text001 = The $Notebook variable contains the 	name of the user's system notebook.
	Text002 = The $MyNotebook variable contains the 	name of the user's private notebook.
'@
}

C:\PS> $TextMsgs.Text001
The $Notebook variable contains the name of the user's system notebook.


C:\PS> $TextMsgs.Text002
The $MyNotebook variable contains the name of the user's private notebook.

Описание
-----------
В этом примере показано использование команды ConvertFrom-StringData в разделе DATA скрипта. Инструкции, расположенные ниже раздела DATA, служат для отображения текста для пользователя.

Поскольку текст содержит имена переменных, его необходимо заключить в одиночные кавычки, чтобы переменные интерпретировались как текст, и вместо них не подставлялись значения. Использовать переменные в разделе DATA запрещается.






Пример 6

C:\PS>$here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@

C:\PS> $hash = $here | convertfrom-stringdata 

C:\PS> $hash

Name     Value
----     -----
Msg3     The specified variable does not exist.
Msg2     Credentials are required for this command.
Msg1     The string parameter is required.

Описание
-----------
В этом примере показано, что для передачи строки командлету ConvertFrom-StringData можно использовать оператор конвейера (|). 

Первая команда сохраняет автономную строку в переменной $here. Вторая команда с помощью оператора конвейера (|) передает переменную $here командлету ConvertFrom-StringData. Эта команда сохраняет результат в переменной $hash.

Последняя команда отображает значение переменной $hash.






См. также




Содержание