使用powershell循环播放csv
问题描述:
我试图使用powershell循环播放csv文件,但由于某种原因,我的foreach循环无法执行。我在网上查找无法找到为什么会这样。奇怪的是,如果我使用简单的循环,我可以迭代,但即时通讯只是想知道什么是未来的参考问题。我的代码如下使用powershell循环播放csv
Clear-Host
$path = Split-Path -Path $MyInvocation.MyCommand.Path -Parent
$csv = Import-Csv $path\Book1.csv -Delimiter ";"
Write-Host $csv
Write-Host @($csv).Length
#When debugging the foreach doesnt get executed
ForEach($l in $csv){
Write-Host $l.ProjectManager
}
#This works fine
for($i = 0; $i -lt @($csv).Length; $i++){
Write-Host $csv.Item($i).ProjectManager
}
继承人的CSV文件
ProjectName;ProjectOwner;ProjectManager;ProjectNumber
Test1;Rich Banks;Monica Ruden;1234567891
Test2;Steve Jones;Steve Gibb;1234567892
答
似乎ISE跳过for循环
答
没有什么不对的代码。它在Windows 2012 R2(PowerShell v3.0)上按预期运行。
输出如下:
@{ProjectName=Test1; ProjectOwner=Rich Banks; ProjectManager=Monica Ruden; ProjectNumber=1234567891} @{ProjectName=Test2
; ProjectOwner=Steve Jones; ProjectManager=Steve Gibb; ProjectNumber=1234567892}
2
Monica Ruden
Steve Gibb
Monica Ruden
Steve Gibb
我想看看环境因素。你使用什么OS/PS版本?你在其他平台上试过了吗?
+0
这也不是一个答案。 – EBGreen
我无法重现它。两个循环都适用于我。这是你正在运行的实际代码吗? – EBGreen
你可以发布你的csv内容是什么样子吗?另外,我会尝试用逗号替换分号。理论上,任何分隔符都可以工作,但是当排除这样的奇怪问题时,最好回到“基础”。 – McKenning
你的csv中有一个“ProjectManager”列吗? – toshi