Need to match 6 digits with 5 digits where just 0 is extra

$UserList = Import-Csv -Path "j:\testad.csv"
$UserData = Import-Csv -Path "j:\testswn.csv"
$Lookup = @{}
$UserData | ForEach-Object {$Lookup[$_.EmployeeID] = $_}
$UserList | Select-Object -Property `
      EmployeeID, Givenname, sn, EmailAddress, StreetAddress, City, State, Country, PostalCode, `
      @{n='Telephone'; e={$Lookup[$_.EmployeeID].Telephone}}, @{n='PersonalEmail'; e={$Lookup[$_.EmployeeID].PersonalEmail}} |
      Export-Csv -NoTypeInformation -Path "j:\testresult2.csv"

Everything is fine but the thing is in one CSV file for some Employees id they are in 6 digits and others in 5 digits, so there the matching result we are getting is incorrect.

Ex- If in my first CSV there are 2 records of Employee id - 123456, 034567 where as in second CSV file it is like- 123456, 34567(0 is not there), so how can we change the equate equation for employee ids so that we can match 6 digits employee id with 5 digits in second csv?

$UserData | ForEach-Object {$Lookup[$_.EmployeeID] = $_}
Aakash AggarwalAsked:
Who is Participating?
footechConnect With a Mentor Commented:
Since the leading "0" may only be present on some records, you would want to have padding out to the 6-character length.
Either of the following two should work.
$UserData | ForEach-Object {$Lookup[$_.EmployeeID.padleft(6,'0')] = $_}

$UserData | ForEach-Object {$Lookup.Add(($_.EmployeeID.padleft(6,'0')),$_)}

Open in new window

Jose Gabriel Ortega CConnect With a Mentor CEO J0rt3g4 Consulting ServicesCommented:
Try this:
$UserData | ForEach-Object {$Lookup["0" +$_.EmployeeID] = $_}

Open in new window

aikimarkConnect With a Mentor Commented:
Or cast the value as a number using [int] and do your comparisons numerically instead of text/string
Jose Gabriel Ortega CCEO J0rt3g4 Consulting ServicesCommented:
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.