如果没有看到任何示例,您的问题有点难以理解,但我想您可以执行以下操作:
#Imports CSV file as variable
$Csvfile = Import-Csv -Path "C:\SomePath\file.csv" -Delimiter ","
#Change 1513 to the actual managers PositionID
$Csvfile | Where {$_.PositionID-eq "1513"} | Select -ExpandProperty LoginID
为了测试,我创建了一个带有一些随机数的快速 csv:
loginID PositionID ReportstoPositionid
1111 3654 1513
2222 1513 54123
3333 54123 16543564
4444 156413 156413
5555 16543564 3654
然后我决定 1513 将是经理职位代码,然后运行上面的 PowerShell 命令以获取登录 ID。
PS C:\> $Csvfile | Where {$_.PositionID -eq "1513"} | Select -ExpandProperty LoginID
2222
如果您想在没有变量的情况下完成这一切,您可以执行以下操作:
PS C:\> Import-Csv -Path "C:\SomePath\file.csv" -Delimiter "," | Where {$_.PositionID -eq "1513"} | Select -ExpandProperty LoginID
2222
最后,如果您想查看 csv 文件中的完整行,可以删除 select 语句。示例:
loginID PositionID ReportsPositionid
------- ---------- -----------------
2222 1513 54123
同样,您的问题有点难以理解,但根据我在这里阅读的内容,我得出了结论。
希望这会有所帮助!
编辑
用样本数据测试后,我相信你可以使用以下方法:
$CSV1 = Import-Csv -Path "C:\Users\Tyler\Desktop\test1.csv" -Delimiter ","
$Manager = $CSV1 | Where {$_.'Position ID' -eq 'YQM000076'} | Select -ExpandProperty "Legal First Name"
Write-Output "The Following Employees Report To $Manager :"
foreach ($Row in $CSV1)
{
if ($Row.'Reports to Position ID' -eq 'YQM000076')
{
Write-Output "$Row"
}
}
输出
The Following Employees Report To Bob :
@{Person ID=; Position ID=YQM000051; Legal First Name=DIANE; Reports To Position ID=YQM000076}
@{Person ID=S9999991; Position ID=YQM000052; Legal First Name=CHARISSE; Reports To Position ID=YQM000076}
@{Person ID=S9999992; Position ID=YQM000052; Legal First Name=CHARISSE; Reports To Position ID=YQM000076}
@{Person ID=S9999993; Position ID=YQM000052; Legal First Name=CHARISSE; Reports To Position ID=YQM000076}