【问题标题】:Powershell to import values in first two columns of csv files on a conditionPowershell根据条件在csv文件的前两列中导入值
【发布时间】:2020-04-08 14:53:48
【问题描述】:


我有以下代码导入 csv 数据并导出到 excel 电子表格中。
如果“状态”列值(第二列)等于“活动”,我该如何导出 Excel,仅导出“名称”列值(第一列)?

Import-Csv -Path 'C:\Data\mergeSessions\CiscoAnyconnect.csv' | Sort-Object -Property 'Name' -Unique | Export-Excel -Path 'C:\Data\mergeSessions\reports\reportVCX01.xlsx' -WorkSheetname 'vpn'

对于下面的代码,我如何导出 Excel,只是来自“关联用户”列(第一列)的值?

Import-Csv C:\Data\mergeSessions\SessionSummary.csv | Sort-Object 'Associated User' -Unique | Export-Excel -Path C:\Data\mergeSessions\reports\reportVCX01.xlsx -WorksheetName 'citrix'

【问题讨论】:

    标签: excel powershell csv


    【解决方案1】:

    对于问题的第一部分,您可以:

    Import-Csv -Path 'C:\Data\mergeSessions\CiscoAnyconnect.csv' |
    Where-Object { $_.Status -eq 'Active' } |
    Select-Object Name -Unique | Sort-Object |
    Export-Excel -Path 'C:\Data\mergeSessions\reports\reportVCX01.xlsx' -WorkSheetname 'vpn'
    

    第二部分比较容易,因为没有条件:

    Import-Csv -Path 'C:\Data\mergeSessions\SessionSummary.csv' |
    Select-Object 'Associated User' -Unique | Sort-Object |
    Export-Excel -Path 'C:\Data\mergeSessions\reports\reportVCX01.xlsx' -WorksheetName 'citrix'
    

    【讨论】:

    • 太好了,谢谢。第一个问题还有一件事,如果可以的话?如果“名称”列的值都有 'LOCAL\test1' 'LOCAL\test2' 'LOCAL\test3' 'LOCAL\test4' 等。如何删除值的 'LOCAL\' 部分?这是我需要包含的类似开关,对吗?
    • @brokencrow 然后我会将Select-Object Name -Unique 更改为Select-Object @{Name = 'Name'; Expression = {($_.Name -split '\\',2)[-1] }} -Unique。这是一个计算属性,基本上是重新创建 Name 列。
    猜你喜欢
    • 2013-10-25
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2019-08-03
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    相关资源
    最近更新 更多