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 PSTemplatingWhile 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.MustermannConvertFrom-Schema -Schema "{firstName(lower)(split)}.{lastName(lower)}" -InputObject @{
"FirstName" = "Max-Test"
"LastName" = "Mustermann"
}max.mustermann
test.mustermannConvertFrom-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.mustermannConvertFrom-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.mustermannConvertFrom-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