Extract and parse structured properties from string content. This cmdlet was removed from PowerShell in version 6.
Syntax
ConvertFrom-String [-Delimiter String] [-PropertyNames String[]] [-InputObject] String
[CommonParameters]
ConvertFrom-String [-TemplateFile String[]] [-TemplateContent String[]] [-IncludeExtent]
[-UpdateTemplate] [-InputObject] String
[CommonParameters]
Key
-Delimiter
Specifies a regular expression that identifies the boundary between elements.
Elements that are created by the split become properties in the resulting object.
The delimiter is ultimately used in a call to the Split method of the
type [System.Text.RegularExpressions.RegularExpression].
-IncludeExtent
Indicates that this cmdlet includes an extent text property that is removed by default.
-InputObject String
Specifies strings received from the pipeline, or a variable that contains a string object.
-PropertyNames String[]
An array of property names to which to assign split values in the resulting object.
Every line of text that you split or parse generates elements that represent property values.
If the element is the result of a capture group, and that capture group is named (for example,
(?<name>) or (?'name') ), then the name of that capture group is assigned to the property.
If you provide any elements in the PropertyName array, those names are assigned to properties
that have not yet been named. If you provide more property names than there are fields,
PowerShell ignores the extra property names. If you do not specify enough property names to
name all fields, PowerShell automatically assigns numerical property names to any properties
that are not named: P1, P2, etc.
-TemplateContent
An expression, or an expression saved as a variable, that describes the properties to which
this cmdlet assigns strings. The syntax of a template field specification is the following:
{[optional-typecast]name:example-value}.
-TemplateFile
A file, as an array, that contains a template for the desired parsing of the string.
In the template file, properties and their values are enclosed in brackets, as shown below.
If a property, such as the Name property and its associated other properties, appears multiple
times, you can add an asterisk (*) to indicate that this results in multiple records.
This avoids extracting multiple properties into a single record.
{Name*:David Chew} {City:Redmond}, {State:WA} {Name*:Evan Narvaez} {Name*:Antonio Moreno}
{City:Issaquah}, {State:WA}
-UpdateTemplate
Indicates that this cmdlet saves the results of a learning algorithm into a comment in the
template file. This makes the algorithm learning process faster.
To use this parameter, you must also specify a template file with the -TemplateFile parameter.
The ConvertFrom-String cmdlet extracts and parses structured properties from string content. This cmdlet generates an object by parsing text from a traditional text stream. For each string in the pipeline, the cmdlet splits the input by either a delimiter or a parse expression, and then assigns property names to each of the resulting split elements. You can provide these property names; if you do not, they are automatically generated for you.
The cmdlet's default parameter set, ByDelimiter, splits exactly on the regular expression delimiter. It does not perform quote matching or delimiter escaping as the Import-Csv cmdlet does.
The cmdlet's alternate parameter set, TemplateParsing, generates elements from the groups that are captured by a regular expression. For more information on regular expressions, see about_Regular_Expressions.
This cmdlet supports two modes: basic delimited parsing, and automatically-generated, example-driven parsing. Delimited parsing, by default, splits the input at white space, and assigns property names to the resulting groups. You can customize the delimiter by piping the ConvertFrom-String results into one of the Format-* cmdlets, or you can use the Delimiter parameter.
The cmdlet also supports automatically-generated, example-driven parsing based on the FlashExtract, research work by Microsoft Research.
Standard Aliases for ConvertFrom-String: CFS
This cmdlet was introduced in Windows PowerShell 5.0.
Generate an object with default property names:
PS C:\> "Hello World" | ConvertFrom-String
P1 P2
-- --
Hello WorldThis command generates an object with default property names, P1 and P2.
Get to know the generated object:
PS C:\> "Hello World" | ConvertFrom-String | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() P1 NoteProperty string P1=Hello P2 NoteProperty string P2=WorldThis command generates one object with properties P1, P2; both properties are of String type, by default.
Generate an object with default property names using a delimiter:
PS C:\> "Contoso\Administrator" | ConvertFrom-String -Delimiter "\\"
P1 P2 -- -- Contoso AdministratorThis command generates an object with a domain and username using the backslash (\) as the delimiter. The backslash character must be escaped with another backslash when using regular expressions.
Generate an object that contains two named properties:
PS C:\> $content = Get-Content C:\Windows\System32\drivers\etc\hosts $content = $content -match "^[^#]" $content | ConvertFrom-String -PropertyNames IP, Server
IP Server
-- ------
192.168.7.10 W2012R2
192.168.7.20 W2016
192.168.7.101 WIN8
192.168.7.102 WIN10The Get-Content cmdlet stores the content of a Windows hosts file in $content. The second command removes any comments at the beginning of the hosts file using a regular expression that matches any line that does not start with (#). The last command converts the remaining text into objects with Server and IP properties.
For more examples: (get-help ConvertFrom-String).examples
“Words are the children of reason and, therefore, can't explain it. They really can't translate feeling because they're not part of it. That's why it bugs me when people try to analyze jazz as an intellectual theorem. It's not. It's feeling” ~ Bill Evans
ConvertTo-Json - Convert an object to a JSON-formatted string.
ConvertTo-SecureString - Convert to SecureString.
ConvertFrom-CSV - Create objects from CSV variable-length strings that are generated by ConvertTo-CSV.
ConvertFrom-Json - Convert a JSON-formatted string to a custom object.