csv 如何在powershell中导出带有自定义对象的foreach-object的结果

hc8w905p  于 2023-03-10  发布在  Shell
关注(0)|答案(1)|浏览(141)

我似乎无法将Foreach的结果导出为csv甚至txt文件。它要求我输入或只是一个空白文件
代码所做的是导入两个csv,它们具有相同的值,但最终存在差异或缺少值,比较它们并返回结果

function compare {

    #Declaring vars
    $csv3 = "C:\Users\xxxxxxxx\Desktop\file3.csv"
    $csv1 = Import-Csv -Path "C:\Users\xxxxxxxx\Desktop\file.csv"
    $csv2 = Import-Csv -Path "C:\Users\xxxxxxxx\Desktop\file2.csv"

    #Start of the main block
    echo "Running..."
    Compare-Object $csv1 $csv2 -IncludeEqual -Property Name,Size,Version,FullName,LastWriteTime |
       ForEach-Object {
            If( $R.sideindicator -ne "==" ){
                  [PSCustomObject]@{
                    Name  = ($_.Name)
                    Srv1 = ($_.FullName, $_.Size,$_.LastWriteTime, $_.Version)
                    Srv2 = ($csv2   | Select-object -Property ($_.FullName, $_.Size,$_.LastWriteTime), @{Name="Version";Expression={$_.Version -replace "",'empty'}})

                } 
            }
        }
}

这是输出之一

Name           Srv1                                                                                                 Srv2                                                                                                       
----           ----                                                                                                 ----                                                                                                       
caqs_.exe    \application\caqs_.exe,26,4469604492188,27/01/2020 17:00:23,5, 82, 254, 0 {@{\application\caqs_.exe,26,4469604492188,27/01/2020 17:00:23=; Version=}, @...

现在,我希望能够导出相同的返回值以上内的csv,或任何可以保持这种格式,如果我把一个export-csv我要么有一个空白的空csv文件或控制台将要求我输入对象。

0s0u357o

0s0u357o1#

“Compare-Object”cmdlet返回属性“InputObject”和“SideIndicator”。我相信您要访问的属性嵌套在“InputObject”属性中。例如,您要使用$_.InputObject.FullName而不是$_.FullName
或者,您可以简化脚本并执行以下操作:

(Compare-Object $csv1 $csv2 -IncludeEqual -Property Name,Size,Version,FullName,LastWriteTime | Where-Object {$_.SideIndicator -ne "=="}).InputObject | Export-Csv $csv3 -NoTypeInformation

相关问题