如何用PowerShell更简洁地删除CSV文件中的指定行?
优化PowerShell筛选CSV行的代码逻辑
你当前通过三次Where-Object调用排除CSV中指定User ID的行,确实可以简化为单次调用,而且用-notin操作符比用-or的写法更简洁直观:
原代码(多次管道调用)
#Remove Unneeded Users import-csv .\LDAPCrossWalkTable.csv | Where-Object "User ID" -ne 'test' | Where-Object "User ID" -ne 'process' | Where-Object "User ID" -ne 'app' | export-csv .\LDAPCrossWalkTableFinal.csv -Force -NoTypeInformation
优化后的代码(单次Where-Object调用)
import-csv .\LDAPCrossWalkTable.csv | Where-Object {$_.'User ID' -notin 'test', 'process', 'app'} | export-csv .\LDAPCrossWalkTableFinal.csv -Force -NoTypeInformation
说明
使用-notin操作符可以直接判断User ID是否不在指定的数组集合中,相比多次管道或者用-or拼接多个-ne条件,代码更紧凑,可读性和可维护性也更强——后续要新增排除的User ID,直接在数组里追加即可。
内容的提问来源于stack exchange,提问作者SeveredTRUTH
相关产品推荐
相关产品推荐

