带有csv文件的PowerShell Regex

问题描述

我目前正在尝试匹配ID模式,并替换为0或1。

example pc0045601234 replace with 1234 the last 4 and add the 3rd digit in front "01234"

我尝试了下面的代码,但是外面只用没有匹配的员工填充了userid列

$reportPath = '.\report.csv'`$reportPath = '.\report.csv'`
$csvPath = '.\output.csv'
$data = Import-Csv -Path $reportPath
$output = @()

foreach ($row in $data) {
    
    $table = "" | Select ID,FirstName,LastName,userid
    $table.ID = $row.ID
    $table.FirstName = $row.FirstName
    $table.LastName = $row.LastName
   

    switch -Wildcard ($row.ID)
    {
    {$row.ID -match 'P\d\d\d\d\d\D\D\D'} {$table.userid = "Contractor"; continue}
    {$row.ID -match 'SEC\d\d\d\D\D\D\D'} {$table.userid = "Contractor"; continue}
    {$row.ID.StartsWith("P005700477")} {$table.userid = $row.ID -replace "P005700477","0477"; continue}
    {$row.ID.StartsWith("P00570")} {$table.userid = $row.ID -replace "P00570","0"; continue}
    
   


    default {$table.userid = "No Matching Employee"}
    }
    
    $output += $table
    
}

$output | Export-csv -NoTypeInformation -Path $csvPath

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)