ConvertFrom-String using a template not parsing as expected ConvertFrom-String using a template not parsing as expected powershell powershell

ConvertFrom-String using a template not parsing as expected


My setup is quite the same (i5/16Gb/Win8.1 64bit/PS 5.0.10514.6).

This is a bit crazy ; only the last line is a problem.

1 - If you isolate it completely and make it the only line in the template and in the sample, it works.

Code :

$Sample = @"    ALL ITEMS           PASSWORD LEVEL"@$TemplateThatFails = @"  {Zebraconfig*:{PasswordLevel:ALL ITEMS}}           PASSWORD LEVEL    "@Write-Host "Using ConvertFrom-String with the TemplateThatFails"$startTime = Get-Date$Sample | ConvertFrom-String -TemplateContent $TemplateThatFails | select -ExpandProperty ZebraConfig$endTime = Get-Date$elapsed = "{0:N2}" -f (New-TimeSpan $startTime $endTime).TotalSeconds"$elapsed seconds elapsed"

Output :

PasswordLevel-------------ALL ITEMS    0,13 seconds elapsed

2 - If you move it just above the previous one (in the sample and in the template), you don't get any error but the data is mixed up.

Code :

$Sample = @"  JJK072821.12Z1220126.23630-01.S.JABI    +20.0               DARKNESS            6 IPS               PRINT SPEED         +000                TEAR OFF            APPLICATOR          PRINT MODE          NON-CONTINUOUS      MEDIA TYPE          WEB                 SENSOR TYPE         DIRECT-THERMAL      PRINT METHOD        812                 PRINT WIDTH         1874                LABEL LENGTH        9.0IN    228MM      MAXIMUM LENGTH      DISABLED            SUPPLIES WARNING    MAINT. OFF          EARLY WARNING       CONNECTED           USB COMM.           READY               EXTERNAL 5V         BIDIRECTIONAL       PARALLEL COMM.      RS232               SERIAL COMM.        9600                BAUD                8 BITS              DATA BITS           NONE                PARITY              XON/XOFF            HOST HANDSHAKE      NONE                PROTOCOL            000                 NETWORK ID          NORMAL MODE         COMMUNICATIONS      <~>  7EH            CONTROL PREFIX      <^>  5EH            FORMAT PREFIX       <,>  2CH            DELIMITER CHAR      ZPL II              ZPL MODE            ACTIVE              COMMAND OVERRIDE    NO MOTION           MEDIA POWER UP      NO MOTION           HEAD CLOSE          OFF                 BACKFEED            +080                LABEL TOP           +0000               LEFT POSITION       OFF                 VERIFIER PORT       MODE 1              APPLICATOR PORT     ENABLED             ERROR ON PAUSE      PULSE MODE          START PRINT SIG     FEED MODE           RESYNCH MODE        DISABLED            REPRINT MODE        048                 WEB S.              079                 MEDIA S.            065                 RIBBON S.           100                 TAKE LABEL          050                 MARK S.             000                 MARK MED S.         002                 TRANS GAIN          040                 TRANS BASE          086                 TRANS BRIGHT        082                 RIBBON GAIN         000                 MARK GAIN           DPCSWFX.            MODES ENABLED       .......M            MODES DISABLED       832 8/MM FULL      RESOLUTION          V53.17.21Z <-       FIRMWARE            1.3                 XML SCHEMA          V45 ---------- 19   HARDWARE ID         CUSTOMIZED          CONFIGURATION       10840k...........R: RAM                 2048k............E: ONBOARD FLASH       NONE                FORMAT CONVERT      *** APPLICATOR      P34 INTERFACE                           TWINAX/COAX ID      FW VERSION          IDLE DISPLAY        11/05/15            RTC DATE            11:22               RTC TIME            DISABLED            ZBI                 2.1                 ZBI VERSION         2,641,289 IN        NONRESET CNTR       2,641,289 IN        RESET CNTR1         2,641,289 IN        RESET CNTR2         6,708,875 CM        NONRESET CNTR       6,708,875 CM        RESET CNTR1         ALL ITEMS           PASSWORD LEVEL  6,708,875 CM        RESET CNTR2       "@$TemplateThatFails = @"  {Zebraconfig*:{Serial:JJK072821.12Z1220126.23630-01.S.JABI}    {Darkness:+20.0}               DARKNESS            {PrintSpeed:6 IPS}               PRINT SPEED         {TearOff:+000}                TEAR OFF            {Applicator:APPLICATOR}          PRINT MODE          {MediaType:NON-CONTINUOUS}      MEDIA TYPE          {SensorType:WEB}                 SENSOR TYPE         {PrintMethod:DIRECT-THERMAL}      PRINT METHOD        {PrintWidth:812}                 PRINT WIDTH         {LabelLength:1874}                LABEL LENGTH        {MaximumLength:9.0IN    228MM}      MAXIMUM LENGTH      {SuppliesWarning:DISABLED}            SUPPLIES WARNING    {EarlyWarning:MAINT. OFF}          EARLY WARNING       {USBComm:CONNECTED}           USB COMM.           {External5v:READY}               EXTERNAL 5V         {ParallelComm:BIDIRECTIONAL}       PARALLEL COMM.      {SerialComm:RS232}               SERIAL COMM.        {Baud:9600}                BAUD                {DataBits:8 BITS}              DATA BITS           {Parity:NONE}                PARITY              {HostHandshake:XON/XOFF}            HOST HANDSHAKE      {Protocol:NONE}                PROTOCOL            {NetworkID:000}                 NETWORK ID          {Communications:NORMAL MODE}         COMMUNICATIONS      {ControlPrefix:<~>  7EH}            CONTROL PREFIX      {FormatPrefix:<^>  5EH}            FORMAT PREFIX       {Delimiter:<,>  2CH}            DELIMITER CHAR      {ZPLMode:ZPL II}              ZPL MODE            {CommandOverride:ACTIVE}              COMMAND OVERRIDE    {MediaPowerUp:NO MOTION}           MEDIA POWER UP      {HeadClose:NO MOTION}           HEAD CLOSE          {Backfeed:OFF}                 BACKFEED            {LabelTop:+080}                LABEL TOP           {LeftPosition:+0000}               LEFT POSITION       {VerifierPort:OFF}                 VERIFIER PORT       {ApplicatorPort:MODE 1}              APPLICATOR PORT     {ErrorOnPause:ENABLED}             ERROR ON PAUSE      {StartPrintSig:PULSE MODE}          START PRINT SIG     {ResynchMode:FEED MODE}           RESYNCH MODE        {ReprintMode:DISABLED}            REPRINT MODE        {WebSensor:048}                 WEB S.              {MediaSensor:079}                 MEDIA S.            {RibbonSensor:065}                 RIBBON S.           {TakeLabel:100}                 TAKE LABEL          {MarkSensor:050}                 MARK S.             {MarkMedSensor:000}                 MARK MED S.         {TrainsGain:002}                 TRANS GAIN          {TransBase:040}                 TRANS BASE          {TransBright:086}                 TRANS BRIGHT        {RibbonGain:082}                 RIBBON GAIN         {MarkGain:000}                 MARK GAIN           {ModesEnable:DPCSWFX.}            MODES ENABLED       {ModesDisabled:.......M}            MODES DISABLED       {Resolution:832 8/MM FULL}      RESOLUTION          {Firmware:V53.17.21Z <-}       FIRMWARE            {XMLSchema:1.3}                 XML SCHEMA          {HardwareID:V45 ---------- 19}   HARDWARE ID         {Configuration:CUSTOMIZED}          CONFIGURATION       {RAM:10840k...........R:} RAM                 {OnboardFlash:2048k............E:} ONBOARD FLASH       {FormatConvert:NONE}                FORMAT CONVERT      {P34Interface:*** APPLICATOR}      P34 INTERFACE                           TWINAX/COAX ID      {IdleDisplay:FW VERSION}          IDLE DISPLAY        {RTCDate:11/05/15}            RTC DATE            {RTCTime:11:22}               RTC TIME            {ZBI:DISABLED}            ZBI                 {ZBIVersion:2.1}                 ZBI VERSION         {NonResetCNTRin:2,641,289 IN}        NONRESET CNTR       {ResetCNTR1in:2,641,289 IN}        RESET CNTR1         {ResetCNTR2in:2,641,289 IN}        RESET CNTR2         {NonResetCNTRcm:6,708,875 CM}        NONRESET CNTR       {ResetCNTR1cm:6,708,875 CM}        RESET CNTR1         {PasswordLevel:ALL ITEMS}           PASSWORD LEVEL      {ResetCNTR2cm:6,708,875 CM}}        RESET CNTR2       "@Write-Host "Using ConvertFrom-String with the TemplateThatFails"$startTime = Get-Date$Sample | ConvertFrom-String -TemplateContent $TemplateThatFails | select -ExpandProperty ZebraConfig$endTime = Get-Date$elapsed = "{0:N2}" -f (New-TimeSpan $startTime $endTime).TotalSeconds"$elapsed seconds elapsed"

Output :

Serial          : JJK072821.12Z1220126.23630-01.S.JABIDarkness        : +20.0PrintSpeed      : 6 IPSTearOff         : +000Applicator      : APPLICATORMediaType       : NON-CONTINUOUSSensorType      : WEBPrintMethod     : DIRECT-THERMALPrintWidth      : 812LabelLength     : 1874MaximumLength   : 9.0IN    228MMSuppliesWarning : DISABLEDEarlyWarning    : MAINT. OFFUSBComm         : CONNECTEDExternal5v      : READYParallelComm    : BIDIRECTIONALSerialComm      : RS232Baud            : 9600DataBits        : 8 BITSParity          : NONEHostHandshake   : XON/XOFFProtocol        : NONENetworkID       : 000Communications  : NORMAL MODEControlPrefix   : <~>  7EHFormatPrefix    : <^>  5EHDelimiter       : <,>  2CHZPLMode         : ZPL IICommandOverride : ACTIVEMediaPowerUp    : NO MOTIONHeadClose       : NO MOTIONBackfeed        : OFFLabelTop        : +080LeftPosition    : +0000VerifierPort    : OFFApplicatorPort  : MODE 1ErrorOnPause    : ENABLEDStartPrintSig   : PULSE MODEResynchMode     : FEED MODEReprintMode     : DISABLEDWebSensor       : 048MediaSensor     : 079RibbonSensor    : 065TakeLabel       : 100MarkSensor      : 050MarkMedSensor   : 000TrainsGain      : 002TransBase       : 040TransBright     : 086RibbonGain      : 082MarkGain        : 000ModesEnable     : DPCSWFX.ModesDisabled   : .......MResolution      : 832 8/MM FULLFirmware        : V53.17.21Z <-XMLSchema       : 1.3HardwareID      : V45 ---------- 19Configuration   : CUSTOMIZEDRAM             : 10840k...........R:OnboardFlash    : 2048k............E:FormatConvert   : NONEP34Interface    : *** APPLICATORIdleDisplay     : FW VERSIONRTCDate         : 11/05/15RTCTime         : 11:22ZBI             : DISABLEDZBIVersion      : 2.1NonResetCNTRin  : 2,641,289 INResetCNTR1in    : 2,641,289 INResetCNTR2in    : 2,641,289 INNonResetCNTRcm  : 6,708,875 CMResetCNTR1cm    : 6,708,875 CMPasswordLevel   : CM        RESETResetCNTR2cm    : 6,708,875 CM36,58 seconds elapsed

3 - If you move it above ZBI VERSION (sample + template), which is the last line in the partially working template, everything is fine.

Code :

$Sample = @"  JJK072821.12Z1220126.23630-01.S.JABI    +20.0               DARKNESS            6 IPS               PRINT SPEED         +000                TEAR OFF            APPLICATOR          PRINT MODE          NON-CONTINUOUS      MEDIA TYPE          WEB                 SENSOR TYPE         DIRECT-THERMAL      PRINT METHOD        812                 PRINT WIDTH         1874                LABEL LENGTH        9.0IN    228MM      MAXIMUM LENGTH      DISABLED            SUPPLIES WARNING    MAINT. OFF          EARLY WARNING       CONNECTED           USB COMM.           READY               EXTERNAL 5V         BIDIRECTIONAL       PARALLEL COMM.      RS232               SERIAL COMM.        9600                BAUD                8 BITS              DATA BITS           NONE                PARITY              XON/XOFF            HOST HANDSHAKE      NONE                PROTOCOL            000                 NETWORK ID          NORMAL MODE         COMMUNICATIONS      <~>  7EH            CONTROL PREFIX      <^>  5EH            FORMAT PREFIX       <,>  2CH            DELIMITER CHAR      ZPL II              ZPL MODE            ACTIVE              COMMAND OVERRIDE    NO MOTION           MEDIA POWER UP      NO MOTION           HEAD CLOSE          OFF                 BACKFEED            +080                LABEL TOP           +0000               LEFT POSITION       OFF                 VERIFIER PORT       MODE 1              APPLICATOR PORT     ENABLED             ERROR ON PAUSE      PULSE MODE          START PRINT SIG     FEED MODE           RESYNCH MODE        DISABLED            REPRINT MODE        048                 WEB S.              079                 MEDIA S.            065                 RIBBON S.           100                 TAKE LABEL          050                 MARK S.             000                 MARK MED S.         002                 TRANS GAIN          040                 TRANS BASE          086                 TRANS BRIGHT        082                 RIBBON GAIN         000                 MARK GAIN           DPCSWFX.            MODES ENABLED       .......M            MODES DISABLED       832 8/MM FULL      RESOLUTION          V53.17.21Z <-       FIRMWARE            1.3                 XML SCHEMA          V45 ---------- 19   HARDWARE ID         CUSTOMIZED          CONFIGURATION       10840k...........R: RAM                 2048k............E: ONBOARD FLASH       NONE                FORMAT CONVERT      *** APPLICATOR      P34 INTERFACE                           TWINAX/COAX ID      FW VERSION          IDLE DISPLAY        11/05/15            RTC DATE            11:22               RTC TIME            DISABLED            ZBI                 ALL ITEMS           PASSWORD LEVEL  2.1                 ZBI VERSION         2,641,289 IN        NONRESET CNTR       2,641,289 IN        RESET CNTR1         2,641,289 IN        RESET CNTR2         6,708,875 CM        NONRESET CNTR       6,708,875 CM        RESET CNTR1         6,708,875 CM        RESET CNTR2       "@$TemplateThatFails = @"  {Zebraconfig*:{Serial:JJK072821.12Z1220126.23630-01.S.JABI}    {Darkness:+20.0}               DARKNESS            {PrintSpeed:6 IPS}               PRINT SPEED         {TearOff:+000}                TEAR OFF            {Applicator:APPLICATOR}          PRINT MODE          {MediaType:NON-CONTINUOUS}      MEDIA TYPE          {SensorType:WEB}                 SENSOR TYPE         {PrintMethod:DIRECT-THERMAL}      PRINT METHOD        {PrintWidth:812}                 PRINT WIDTH         {LabelLength:1874}                LABEL LENGTH        {MaximumLength:9.0IN    228MM}      MAXIMUM LENGTH      {SuppliesWarning:DISABLED}            SUPPLIES WARNING    {EarlyWarning:MAINT. OFF}          EARLY WARNING       {USBComm:CONNECTED}           USB COMM.           {External5v:READY}               EXTERNAL 5V         {ParallelComm:BIDIRECTIONAL}       PARALLEL COMM.      {SerialComm:RS232}               SERIAL COMM.        {Baud:9600}                BAUD                {DataBits:8 BITS}              DATA BITS           {Parity:NONE}                PARITY              {HostHandshake:XON/XOFF}            HOST HANDSHAKE      {Protocol:NONE}                PROTOCOL            {NetworkID:000}                 NETWORK ID          {Communications:NORMAL MODE}         COMMUNICATIONS      {ControlPrefix:<~>  7EH}            CONTROL PREFIX      {FormatPrefix:<^>  5EH}            FORMAT PREFIX       {Delimiter:<,>  2CH}            DELIMITER CHAR      {ZPLMode:ZPL II}              ZPL MODE            {CommandOverride:ACTIVE}              COMMAND OVERRIDE    {MediaPowerUp:NO MOTION}           MEDIA POWER UP      {HeadClose:NO MOTION}           HEAD CLOSE          {Backfeed:OFF}                 BACKFEED            {LabelTop:+080}                LABEL TOP           {LeftPosition:+0000}               LEFT POSITION       {VerifierPort:OFF}                 VERIFIER PORT       {ApplicatorPort:MODE 1}              APPLICATOR PORT     {ErrorOnPause:ENABLED}             ERROR ON PAUSE      {StartPrintSig:PULSE MODE}          START PRINT SIG     {ResynchMode:FEED MODE}           RESYNCH MODE        {ReprintMode:DISABLED}            REPRINT MODE        {WebSensor:048}                 WEB S.              {MediaSensor:079}                 MEDIA S.            {RibbonSensor:065}                 RIBBON S.           {TakeLabel:100}                 TAKE LABEL          {MarkSensor:050}                 MARK S.             {MarkMedSensor:000}                 MARK MED S.         {TrainsGain:002}                 TRANS GAIN          {TransBase:040}                 TRANS BASE          {TransBright:086}                 TRANS BRIGHT        {RibbonGain:082}                 RIBBON GAIN         {MarkGain:000}                 MARK GAIN           {ModesEnable:DPCSWFX.}            MODES ENABLED       {ModesDisabled:.......M}            MODES DISABLED       {Resolution:832 8/MM FULL}      RESOLUTION          {Firmware:V53.17.21Z <-}       FIRMWARE            {XMLSchema:1.3}                 XML SCHEMA          {HardwareID:V45 ---------- 19}   HARDWARE ID         {Configuration:CUSTOMIZED}          CONFIGURATION       {RAM:10840k...........R:} RAM                 {OnboardFlash:2048k............E:} ONBOARD FLASH       {FormatConvert:NONE}                FORMAT CONVERT      {P34Interface:*** APPLICATOR}      P34 INTERFACE                           TWINAX/COAX ID      {IdleDisplay:FW VERSION}          IDLE DISPLAY        {RTCDate:11/05/15}            RTC DATE            {RTCTime:11:22}               RTC TIME            {ZBI:DISABLED}            ZBI                 {PasswordLevel:ALL ITEMS}           PASSWORD LEVEL      {ZBIVersion:2.1}                 ZBI VERSION         {NonResetCNTRin:2,641,289 IN}        NONRESET CNTR       {ResetCNTR1in:2,641,289 IN}        RESET CNTR1         {ResetCNTR2in:2,641,289 IN}        RESET CNTR2         {NonResetCNTRcm:6,708,875 CM}        NONRESET CNTR       {ResetCNTR1cm:6,708,875 CM}        RESET CNTR1         {ResetCNTR2cm:6,708,875 CM}}        RESET CNTR2       "@Write-Host "Using ConvertFrom-String with the TemplateThatFails"$startTime = Get-Date$Sample | ConvertFrom-String -TemplateContent $TemplateThatFails | select -ExpandProperty ZebraConfig$endTime = Get-Date$elapsed = "{0:N2}" -f (New-TimeSpan $startTime $endTime).TotalSeconds"$elapsed seconds elapsed"

Output :

Serial          : JJK072821.12Z1220126.23630-01.S.JABIDarkness        : +20.0PrintSpeed      : 6 IPSTearOff         : +000Applicator      : APPLICATORMediaType       : NON-CONTINUOUSSensorType      : WEBPrintMethod     : DIRECT-THERMALPrintWidth      : 812LabelLength     : 1874MaximumLength   : 9.0IN    228MMSuppliesWarning : DISABLEDEarlyWarning    : MAINT. OFFUSBComm         : CONNECTEDExternal5v      : READYParallelComm    : BIDIRECTIONALSerialComm      : RS232Baud            : 9600DataBits        : 8 BITSParity          : NONEHostHandshake   : XON/XOFFProtocol        : NONENetworkID       : 000Communications  : NORMAL MODEControlPrefix   : <~>  7EHFormatPrefix    : <^>  5EHDelimiter       : <,>  2CHZPLMode         : ZPL IICommandOverride : ACTIVEMediaPowerUp    : NO MOTIONHeadClose       : NO MOTIONBackfeed        : OFFLabelTop        : +080LeftPosition    : +0000VerifierPort    : OFFApplicatorPort  : MODE 1ErrorOnPause    : ENABLEDStartPrintSig   : PULSE MODEResynchMode     : FEED MODEReprintMode     : DISABLEDWebSensor       : 048MediaSensor     : 079RibbonSensor    : 065TakeLabel       : 100MarkSensor      : 050MarkMedSensor   : 000TrainsGain      : 002TransBase       : 040TransBright     : 086RibbonGain      : 082MarkGain        : 000ModesEnable     : DPCSWFX.ModesDisabled   : .......MResolution      : 832 8/MM FULLFirmware        : V53.17.21Z <-XMLSchema       : 1.3HardwareID      : V45 ---------- 19Configuration   : CUSTOMIZEDRAM             : 10840k...........R:OnboardFlash    : 2048k............E:FormatConvert   : NONEP34Interface    : *** APPLICATORIdleDisplay     : FW VERSIONRTCDate         : 11/05/15RTCTime         : 11:22ZBI             : DISABLEDPasswordLevel   : ALL ITEMSZBIVersion      : 2.1NonResetCNTRin  : 2,641,289 INResetCNTR1in    : 2,641,289 INResetCNTR2in    : 2,641,289 INNonResetCNTRcm  : 6,708,875 CMResetCNTR1cm    : 6,708,875 CMResetCNTR2cm    : 6,708,875 CM36,32 seconds elapsed

I really don't understand what's going on, but I have managed to suppress the error so I hope this will point you in the right direction.

PS : why is this so long to run ?!