Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何访问数组中的标头信息_Arrays_Powershell_Csv - Fatal编程技术网

Arrays 如何访问数组中的标头信息

Arrays 如何访问数组中的标头信息,arrays,powershell,csv,Arrays,Powershell,Csv,首先,我是PowerShell的新手,已经用许多不同的语言编写了代码。我的大部分经验都来自java,所以通常我会在这种背景下格式化代码,如果它看起来很疯狂,我向它道歉 我正在尝试制作一个脚本,可以在CSV上运行,将每个对象加载到一个数组中。然后,我想检查每个对象,确保它附带了电子邮件地址、名字和姓氏。我们目前正在手动删除无效条目 下面是我正在使用的代码。我正在尝试导入CSV。我想读取数组中的每个元素并删除不符合条件的条目,然后将其导出到CSV。我不知道数组中的对象是什么样子,如何检查每个对象中的

首先,我是PowerShell的新手,已经用许多不同的语言编写了代码。我的大部分经验都来自java,所以通常我会在这种背景下格式化代码,如果它看起来很疯狂,我向它道歉

我正在尝试制作一个脚本,可以在CSV上运行,将每个对象加载到一个数组中。然后,我想检查每个对象,确保它附带了电子邮件地址、名字和姓氏。我们目前正在手动删除无效条目

下面是我正在使用的代码。我正在尝试导入CSV。我想读取数组中的每个元素并删除不符合条件的条目,然后将其导出到CSV。我不知道数组中的对象是什么样子,如何检查每个对象中的信息是否为空。任何逻辑方面的帮助都很好。CSV有下面列出的标题,但我只关心上面列出的ONCE。谢谢 ' $csv=读取主机“输入csv的文件路径”


`

你可以将中间的一位缩短为
?{$.Lastname-和$.Firstname-和$.Email}
…它可能只是我,但我在导出CSV时总是使用
-NoTypeInfo
我在发布后更改了我的代码,以使$.Lastname等运行,但我没有得到任何回报,除非我把代码放在第一个if语句中。我尝试了你的解决方案,它比我试图做的要精简得多,但它也给了我一个空白文件。因此,情况似乎不正常。我知道我有很多条目没有电子邮件,或者没有名字和姓氏。我会更改条件来测试这一点-在Where对象中只使用$\ux.Lastname-ne$null开始。假设您得到了输出,那么只需微调您的条件,它们可能没有空值,而是空字符串。尝试[String]::IsNullOrEmpty($\.Lastname)而不是$\.Lastname-ne$null.Ok,
![String]::IsNullOrEmpty()
太棒了,为什么我以前从未见过这个?谢谢你,KevinD,我以前遇到过空字符串,以前总是用难看而笨拙的脚本来伪装过去。
$CsvArray = Import-Csv $csv -Header Lastname,Firstname,Department,Phonenumber,Email

  foreach ($i in $CsvArray)
   {
     Write-Host $CsvArray($i)

  if(Lastname -eq $NULL) -or (firstname -eq $NULL) -or (Email -eq $NULL)
     {
       Delete $i from array 
      }
  else
     {
     $i
     }
 } 

 $csvArray | Export-Csv c:\emaillist.txt -force


 Write-Host "Press any key to continue ..."

$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
$CsvArray = Import-Csv $csv -Header Lastname,Firstname,Department,Phonenumber,Email |
Where-Object { $_.Lastname -ne $null -and $_.Firstname -ne $null -and $Email -ne $null } |
Export-Csv C:\emaillist.txt -force