Powershell 问题错误检查-匹配和IF语句

Powershell 问题错误检查-匹配和IF语句,powershell,csv,Powershell,Csv,下面的脚本将从我们的MIS系统导入导出的CSV,以便我们可以上传到google教室。在tern中,这将允许基于regex.csv中的单词匹配使用自定义类名批量创建类 从exporteddata.csv中可以看到,10552为空 是否可以从最终导出中省略此项并将其添加到自己的errors.csv文件中 任何帮助都会很好 Script.ps1 $data = Import-Csv "$PSScriptRoot\data.csv" -Delimiter ',' $patterns = Import-C

下面的脚本将从我们的MIS系统导入导出的CSV,以便我们可以上传到google教室。在tern中,这将允许基于regex.csv中的单词匹配使用自定义类名批量创建类

从exporteddata.csv中可以看到,10552为空

是否可以从最终导出中省略此项并将其添加到自己的errors.csv文件中

任何帮助都会很好

Script.ps1

$data = Import-Csv "$PSScriptRoot\data.csv" -Delimiter ','
$patterns = Import-Csv "$PSScriptRoot\Regex\regex.csv" -Delimiter ','
$interimexportedData = "$PSScriptRoot\classesinterim.csv" 
$exportclasses = "$PSScriptRoot\exporteddata.csv" 

## Imports the initial SIMS export of classes and created a 'prefered' name for the class, then exports to a CSV.
$data | Select-Object *,@{Name='preference'; Expression={
  foreach ($p in $patterns) {
    if ($_.title -match $p.'regex_key') {
     $p.preference + " " + "-" + " " + $_.title
     return
    }
  }    
}  

} | Select-Object -property sourcedID, preference | Export-Csv $interimexportedData -NoTypeInformation

## The below re-imports the csv file and renames the header
Import-Csv $interimexportedData |
Select-Object -property sourcedID, @{ expression={$_.preference}; label='title' } |
Export-Csv -NoTypeInformation $exportclasses

## Delete the classesinterim.csv from the folder
Remove-Item $interimexportedData
data.csv

"sourcedId","title"
9443,"10A/BS1"
9444,"10A/FR1"
10598,"10A/Ft"
9445,"10A/GG1"
9446,"10A/HI1"
9447,"10A/ME1"
9451,"10A/ME2"
9448,"10A/RM1"
9449,"10A/SCTrX"
9452,"10A/SCTrY"
10552,"10A/SOS"
9450,"10A/SP1"
exporteddata.csv

"sourcedId","title"
"9443","Business Studies - 10A/BS1"
"9444","French - 10A/FR1"
"10598","Form Time - 10A/Ft"
"9445","Geography - 10A/GG1"
"9446","History - 10A/HI1"
"9447","Media Studies - 10A/ME1"
"9451","Media Studies - 10A/ME2"
"9448","Resistant Materials - 10A/RM1"
"9449","Science - 10A/SCTrX"
"9452","Science - 10A/SCTrY"
"10552",""
regex.csv

"regex_key","preference"
BS,"Business Studies"
FR, "French"
Ar,"Art"
Bt,"Eng & Maths Booster"
Bs,"Business"
Cn,"Construction"
Co,"Computing"

使用
Where Object
筛选出具有空值的对象:

$data |选择对象*,@{Name='preference';表达式={
foreach($p,以$patterns表示){
if($\标题-匹配$p.'regex\ u key'){
$p.preference++“-++++$\标题
返回
}
}    
}|其中对象首选项-ne“

使用
Where Object
筛选出具有空值的对象:

$data |选择对象*,@{Name='preference';表达式={
foreach($p,以$patterns表示){
if($\标题-匹配$p.'regex\ u key'){
$p.preference++“-++++$\标题
返回
}
}    
}|其中对象首选项-ne“

这对我不起作用。它仍然显示不匹配的标题,如
”。Thanks@joko_88然后
Where Object title-ne'
这对我不起作用。它仍然显示不匹配的标题,如
”。Thanks@joko_88然后
Where Object title-ne'