如何使用单个foreach循环读取CSV文件的多列数据?
如何在PowerShell的单个foreach循环中同时读取CSV的两列数据
当然可以,但你尝试的语法是错误的。PowerShell的foreach循环一次只能遍历一个集合,直接遍历CSV的行对象就能同时获取每一行的userID和domain属性,确保两者一一对应。
正确的实现方式
假设你已经通过Import-Csv导入了CSV文件(比如$ws = Import-Csv -Path "your-file.csv"),直接遍历每一行对象即可:
foreach ($row in $ws) { # 获取当前行的userID和domain值 $userId = $row.userID $domain = $row.domain # 生成邮箱地址示例 $emailAddress = "$userId@$domain" # 执行你的业务逻辑,比如输出邮箱地址 Write-Host "生成的邮箱:$emailAddress" }
为什么你的写法行不通
你尝试的foreach ($E in $ws.'userID', $D in $ws.'domain')是无效语法,PowerShell不支持这种同时遍历两个集合的写法。而且即使你分开遍历两个列,一旦CSV的行数出现异常(比如某列数据缺失),会导致userID和domain的对应关系错乱,而遍历行对象能完全避免这个问题。
内容的提问来源于stack exchange,提问作者FallenEgg
相关产品推荐
相关产品推荐

