我想知道为什么当我运行我的脚本时,结果显示我“;”我的阵列之间。我实际上是想比较两个excel列并显示差异。如果单元格不在第一列但在第二列中,则显示该列。我怎样才能删除这些“;”并获得列之间的差异?我也尝试过一些带有一列的文件,它可以正常工作
结果:
ComputerName;;;;;OtherComputerName
----------------------------------
uiojk;;;;;uih
hjbyu;;;;;ubyhi`
脚本:
#get the content of the column in the file
[string[]]$a = import-csv '.\test1.csv' | select -expand ComputerName
[string[]]$d = import-csv '.\test1.csv' | select -expand OtherComputerName
#display the cells which aren't in the $a list
$d |? {$a -notcontains $_}
#displays the columns of one file
[Array]$stores[2].ComputerName
[Array]$stores[2].OtherComputerName
$stores
答案 0 :(得分:2)
Import-Csv
使用逗号作为默认分隔符,如果要使用其他字符,则需要使用-Delimiter
选项。像这样:
$x = Import-Csv .\test1.csv -Delimiter ';'
Compare-Object -ReferenceObject $x.ComputerName -DifferenceObject $x.OtherComputerName
此代码会生成警告,因为并非所有CSV列都有标题,但它仍然有效。