PowerShell脚本:结果问题

时间:2017-06-16 07:44:28

标签: excel powershell

我想知道为什么当我运行我的脚本时,结果显示我“;”我的阵列之间。我实际上是想比较两个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 

1 个答案:

答案 0 :(得分:2)

Import-Csv使用逗号作为默认分隔符,如果要使用其他字符,则需要使用-Delimiter选项。像这样:

$x = Import-Csv .\test1.csv -Delimiter ';'
Compare-Object -ReferenceObject $x.ComputerName -DifferenceObject $x.OtherComputerName

此代码会生成警告,因为并非所有CSV列都有标题,但它仍然有效。