2012-08-16 76 views
1

我遇到了腳本問題。我需要刪除我的XLS文件中的所有重複行。 這裏是我的腳本:使用powershell腳本刪除excel(.xls)中的重複行

sdsfsdf 
$out_fcalias = "D:\scripts\SAN\Out_fcAlias.txt" 
$out_flogi = "D:\scripts\SAN\Out_flogi.txt" 
$out_zone = "D:\scripts\SAN\Out_zone.txt" 
$out_zoneact = "D:\scripts\SAN\Out_zoneactive.txt" 
$Final_Report= "D:\Scripts\SAN\Report_test.xls" 

# Params 
$i = "" 
$tmp_splitArray = "" 
$tmp_SwitchName = "" 
$tmp_FabricName = "" 
$tmp_ZoneName = "" 
$tmp_Fcid = "" 
$tmp_WWNName = "" 
$tmp_Output = "" 

# create xls 
$XLS = new-object -comobject excel.application 
$XLS.Visible = $True 
$XLS_File = $XLS.Workbooks.Add() 
$XLS_Sheet = $XLS_File.Worksheets.Item(1) 
$XLS_Sheet.Name = "Report" 
$XLS_Sheet.Cells.Item(1,1) = "Fabric" 
$XLS_Sheet.Cells.Item(1,2) = "Zone" 
$XLS_Sheet.Cells.Item(1,3) = "Fcid" 
$XLS_Sheet.Cells.Item(1,4) = "WWN" 
$XLS_Sheet.Cells.Item(1,5) = "Switch" 
$XLS_Sheet.Cells.Item(1,6) = "FCID" 
$XLS_Sheet.Cells.Item(1,7) = "Port Name" 
$XLS_Sheet.Cells.Item(1,8) = "Node Name" 
$XLS_Sheet.Cells.Item(1,9) = "Alias" 
$XLS_LineCounter = 2 

$a = get-content $out_zoneact 

foreach ($i in $a) 
    { 
    if ($i -match "Fabric") { $tmp_FabricName = $i} 
    if ($i -match "zone name") 
     { 
     $tmp_splitArray = [regex]::split($i, " ") 
     $tmp_ZoneName = $tmp_splitArray[2] 
     } 
    if ($i -match " fcid ") 
     { 
     $tmp_splitArray = [regex]::split($i, " ") 
     $tmp_Fcid = $tmp_splitArray[2] 
    } 
if ($i -match "pwwn") 
    { 
    $tmp_splitArray = [regex]::split($i, " ") 
    $tmp_WWNName = $tmp_splitArray[4] 
    $XLS_Sheet.cells.item($XLS_LineCounter,1) = $tmp_FabricName 
    $XLS_Sheet.cells.item($XLS_LineCounter,2) = $tmp_ZoneName 
    $XLS_Sheet.cells.item($XLS_LineCounter,3) = $tmp_Fcid 
    $XLS_Sheet.cells.item($XLS_LineCounter,4) = $tmp_WWNName.Substring(0,$tmp_WWNName.Length-1) 
    $XLS_LineCounter = $XLS_LineCounter + 1 
    } 
} 
#autofit 
$objRange = $XLS_Sheet.UsedRange 
[void] $objRange.EntireColumn.Autofit() 


$XLS_File.SaveAs($Final_Report) 
$XLS_File.Close() 
$XLS.Quit()  

所以我有很多重複的行,我需要得到編程擺脫他們,這樣我就可以把它放在我的腳本。

回答

1

# autofit後,插入

$XLS_Sheet.UsedRange.RemoveDuplicates() 

應該工作,爲MSDN

提供