Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
在powershell脚本中消除阵列中的重复项_Powershell - Fatal编程技术网

在powershell脚本中消除阵列中的重复项

在powershell脚本中消除阵列中的重复项,powershell,Powershell,我导入了一个CSV,它有两个组和组成员显示在它们前面。两个组中都有重复的成员,如: A组: 约翰·哈里·伯克 约翰 汤姆 希尔顿酒店 B组: 约翰 路易丝 (约翰重复了一遍), 因此,我使用下面的代码将所有组成员添加到一个数组中,然后从中打印唯一的组成员,但它不起作用 $Global:grpmember = @() $CSV=Import-Csv -Path "C:\Temp\LicenseCount\Names.csv" -delimiter "," $csv | %

我导入了一个CSV,它有两个组和组成员显示在它们前面。两个组中都有重复的成员,如: A组:

约翰·哈里·伯克

  • 约翰
  • 汤姆
  • 希尔顿酒店
  • B组:

  • 约翰
  • 路易丝
  • (约翰重复了一遍), 因此,我使用下面的代码将所有组成员添加到一个数组中,然后从中打印唯一的组成员,但它不起作用

        $Global:grpmember = @()
        $CSV=Import-Csv -Path "C:\Temp\LicenseCount\Names.csv" -delimiter ","
        $csv | % {
        $grpmember+= $_.GroupMembers
        Write-Host "I am executed"
        }
        $grpmember | Get-Unique -AsString
    
    在此处输入图像描述

    应在此处工作。但它需要一个排序数组,而您的输入没有排序

    还有其他一些选择。假设您有一个数组,比如:

    $array = @('a', 'b', 'c', 'a')
    
    在这种情况下,可以使用
    select-uniq
    sort-uniq
    从上述数组中删除重复项

    $array= $array | select -uniq
    # or
    $array= $array | sort -uniq
    
    应该在这里工作。但它需要一个排序数组,而您的输入没有排序

    还有其他一些选择。假设您有一个数组,比如:

    $array = @('a', 'b', 'c', 'a')
    
    在这种情况下,可以使用
    select-uniq
    sort-uniq
    从上述数组中删除重复项

    $array= $array | select -uniq
    # or
    $array= $array | sort -uniq
    

    $Global:grpmember=@()$CSV=Import CSV-Path“C:\Temp\LicenseCount\Names.CSV”-delimiter“,”| Sort-Unique$CSV |%{$grpmember+=$|.GroupMembers Write Host“I am executed”}$grpmember | Get Unique-AsStringThis仅为1个组运行,忽略CSV中的其他组您的CSV格式不正确吗?区分大小写呢?你能在问题中粘贴csv文件吗?我不理解csv的结构。我将“应用程序名”、“组名”、“组用户”作为标题。应用程序名相同,但有两个组-A01管理员、A01用户。然后,组成员将显示在他们面前$Global:grpmember=@()$CSV=Import CSV-Path“C:\Temp\LicenseCount\Names.CSV”-delimiter“,“| Sort-Unique$CSV |%{$grpmember+=$。\GroupMembers写入主机“I am executed”}$grpmember |获取唯一-Asstring此选项仅针对1个组运行,而忽略csvis中的其他组您的csv格式是否错误?区分大小写呢?你能在问题中粘贴csv文件吗?我不理解csv的结构。我将“应用程序名”、“组名”、“组用户”作为标题。应用程序名相同,但有两个组-A01管理员、A01用户。然后,组成员显示在他们前面。您的问题不作为
    计算。CSV
    文件不支持换行(从粘贴中可以看到:所有名称都用一个空格连接),我确信如果您将此
    .CSV
    导入到应用程序(或Excel)中您会发现所有名称都用一个空格连接。如果无法区分空间名/姓和每个全名,您希望如何区分名称?我认为你需要忘记
    .CVS
    文件,然后退一步,比如模块。有什么解决办法吗?我必须组合两个组的成员(1个应用程序的一部分),然后从中提取唯一的成员,以计算许可证数。。。。由于在不同的组中重复同一用户的名称,许可证的计数也在重复,这取决于源应用程序(屏幕截图来自哪里)是否可以导出到CSV文件之外的其他文件,或者是否可以使用类似
    的内容转义换行符`r`n..
    ..\r\n..
    您的问题不计算为
    。CSV
    文件不支持换行符(从粘贴中可以看出:所有名称都用一个空格连接),我确信如果您将此
    .CSV
    导入到应用程序(或Excel)中您会发现所有名称都用一个空格连接。如果无法区分空间名/姓和每个全名,您希望如何区分名称?我认为你需要忘记
    .CVS
    文件,然后退一步,比如模块。有什么解决办法吗?我必须组合两个组的成员(1个应用程序的一部分),然后从中提取唯一的成员,以计算许可证数。。。。由于在不同的组中重复同一用户的名称,许可证的计数也在重复,这取决于源应用程序(屏幕截图来自哪里)是否可以导出到CSV文件之外的其他文件,或者是否可以使用类似
    的内容转义换行符`r`n.
    。\r\n.