使用Powershell比较2个CSV文件

时间:2019-03-15 09:48:50

标签: powershell comparison

我已经编写了一个脚本,该脚本可以生成具有所有可能的个人识别码组合(0000-9999)的文件,然后将所有不可用(已经分配给AD用户)的个人识别码带回来,但是最后我想要开发此脚本以通过比较前两个文件(具有所有可能组合的文件和具有已采用组合的文件)来生成带有可用密码的第三个文件,脚本是

Import-Module Activedirectory 
$all = '0000'..'9999' | out-file C:\TEMP\test\NewGroup9.txt
$re = [regex]'ixi:\+49.*(\d{4})'    
Get-ADUser -Filter * -Properties ProxyAddresses |  
  Select-Object @{Name = 'ixi'; Expression = {$re.Match($_.ProxyAddresses).Groups[1].Value}} | 
    Where-Object { $_.ixi.Trim() } | export-csv C:\TEMP\test\NewGroup14.csv -Delimiter ";" -notypeinformation -Encoding "UTF8"
Get-Content C:\TEMP\test\NewGroup14.csv | % { $_ -replace 'ixi', '' } | 
  sort -Descending | Set-Content C:\TEMP\test\NewGroup17.csv
compare-object -ReferenceObject $(Get-Content C:\TEMP\test\NewGroup9.txt) -DifferenceObject $(get-content C:\TEMP\test\NewGroup17.csv) -IncludeEqual | 
  Where-Object SideIndicator -eq '<=' |
    Export-Csv C:\TEMP\test\NewGroup13.csv -Delimiter ";" -notypeinformation -Encoding "UTF8"

我写的比较不起作用,它在所有组合下都始终返回与文件相同的结果!!感谢您的帮助

1 个答案:

答案 0 :(得分:0)

由于您想比较将所有数字存储在文件中,因此IMO一文不值

my_string_variable = r'alpha\omega'

这可能有效(未经测试)

$all = 0..9999|%{"{0:D4}" -f $_}
# or alternatively
# $all = 0..9999|%{$_.ToString('0000')}

您可以将变量$ Used / $ UnUsed保存到具有Set-Content的文件中。