Trim all but last 5 of serial number

This topic contains 6 replies, has 6 voices, and was last updated by  Mike Eyler 1 year, 12 months ago.

  • Author
    Posts
  • #31323

    crashrebootrepeat
    Participant

    Sorry for the newb question but I am really stuck here. I am trying to use

    $SERIAL = (Get-WmiObject win32_bios).serialnumber

    Which returns to me something like "MXL1160602"

    All I need is the "60602"

    I have tried all sorts of trims and replaces and I can not get it to give me the output I want.

    I am not getting any errors, when I run the command with a trim or replace it goes through but it still gives me the whole result. The only thing I have found to work so far is $serial -replace "MXL", ""

  • #31325

    Mark
    Participant

    $SERIAL.substring($SERIAL.length – 6, 6)

    BTW. Your title says trim all but the last six. Your example shows only the last five.

  • #31327

    Dave Wyatt
    Moderator

    I'd do this: "MXL1160602" -replace '.*?(?=.{1,6}$)'

    But then again, I'm one of those weird people who likes to use regex. 😛

    (The advantage, though, is that this works regardless of the length of the string. Using String.SubString() will throw an exception if the string is fewer than 6 characters, unless you add a bit of extra code to check for that condition.)

  • #31328

    Dave Wyatt
    Moderator

    Another option that works regardless of length:

    New-Object string (,@($serial.ToCharArray() | Select-Object -Last 6))

    Or, in PowerShell v5:

    [string]::new(@($serial.ToCharArray() | Select-Object -Last 6))

  • #31335

    Tim Curwick
    Participant

    Another option that works regardless of length:

    $Serial.Substring( [math]::Max( 0, $Serial.Length – 6 ) )

  • #31356

    Mark Hammonds
    Participant

    here is my attempt

    [string]$serial = $serial[-5..-1]

  • #31397

    Mike Eyler
    Participant

    My question is does the serial number data being returned need to be cleaned first?
    I gathered serial numbers yesterday and they all had extra characters at the end (5 spaces).

    Are you collecting serial numbers from one or many pcs?

You must be logged in to reply to this topic.