The PSTemplating module provides a simple way of generating values based on a schema (template) and variable bindings. Details about the usage can be found inside the Wiki.
Install-Module PSTemplating
While this module can be used for basic substitution of variables with concise values, it's real worth lies within the generation of values based on operations and failovers.
ConvertFrom-Schema -Schema "{firstName}.{lastName}" -InputObject @{
"FirstName" = "Max-Test"
"LastName" = "Mustermann"
}
Max-Test.Mustermann
ConvertFrom-Schema -Schema "{firstName(lower)(split)}.{lastName(lower)}" -InputObject @{
"FirstName" = "Max-Test"
"LastName" = "Mustermann"
}
max.mustermann
test.mustermann
ConvertFrom-Schema -Schema "{firstName(lower)(split)(?countUp[1,3])}.{lastName(lower)}" -InputObject @{
"FirstName" = "Max-Test"
"LastName" = "Mustermann"
}
max.mustermann
test.mustermann
max1.mustermann
max2.mustermann
max3.mustermann
test1.mustermann
test2.mustermann
test3.mustermann
ConvertFrom-Schema -Schema "ext-{firstName(lower)(split)(sel[0]|sel[0,1]|sel[0,2])}.{lastName(lower)}" -InputObject @{
"FirstName" = "Max-Test"
"LastName" = "Mustermann"
}
ext-m.mustermann
ext-t.mustermann
ext-ma.mustermann
ext-te.mustermann
ext-mx.mustermann
ext-ts.mustermann
ConvertFrom-Schema -Schema "{lastName(?replace[$, ]&countUp[1,3])}, {firstName}" -InputObject @{
"FirstName" = "Max-Test"
"LastName" = "Mustermann"
}
Mustermann, Max-Test
Mustermann 1, Max-Test
Mustermann 2, Max-Test
Mustermann 3, Max-Test
- Torben Soennecken