将相同的字符串附加到PowerShell中CSV列中的所有变量

Posted

技术标签:

【中文标题】将相同的字符串附加到PowerShell中CSV列中的所有变量【英文标题】:Append same string to all variables in column of CSV in powershell 【发布时间】:2021-03-23 06:05:35 【问题描述】:

我需要有关如何将字符串 -Config 添加到名称列中的每个名称的帮助。

CSV 文件包含:

FullName             Name    LastWriteTime
\\remotecomputer\    Henry   4/30/2020  3:44:57 PM
\\remotecompter\     Magy    12/7/2020  9:04:28 PM

想要的输出:

FullName             Name    LastWriteTime
\\remotecomputer\    Henry-Config   4/30/2020  3:44:57 PM
\\remotecompter\     Magy-Config    12/7/2020  9:04:28 PM

我当前的代码:

$InvoiceList = Import-CSV -Path C:\$source-PREP.csv | foreach($list in $InvoiceList)
$Name=$($list.name)
Get-ChildItem -Path 'C:\Names' -Filter *.txt | where $_.Name -like '*' |Copy-Item -Destination 'c:\newfolder' -Force 

【问题讨论】:

【参考方案1】:

由于您的文件只有几个已知列,您可以使用Select-Object 并使用calculated property 将-Config 附加到名称列中的值:

$data = Import-CSV -Path "C:\$source-PREP.csv" | 
        Select-Object FullName, @Name = 'Name'; Expression = '0-Config' -f $_.Name, LastWriteTime
$data | Export-Csv -Path "C:\$source-PREP.csv" -NoTypeInformation -Force

结果

FullName          Name         LastWriteTime    
--------          ----         -------------    
\\remotecomputer\ Henry-Config 4/30/2020 3:44:57
\\remotecompter\  Magy-Config  12/7/2020 9:04:28

【讨论】:

【参考方案2】:

您只需要迭代 CSV 中的每一行并更新 name 属性。完成后导出回 CSV

$csvfile = 'some\path\to\file.csv'

$csvdata = Import-Csv $csvfile

$csvdata | ForEach-Object $_.name = $_.name + '-Config'

$csvdata | Export-Csv $csvfile -NoTypeInformation

【讨论】:

以上是关于将相同的字符串附加到PowerShell中CSV列中的所有变量的主要内容,如果未能解决你的问题,请参考以下文章

csv 文件中的模式匹配并附加到匹配的行

将用户信息导出到 CSV - 附加列

将 pandas DataFrame 列附加到 CSV

如何遍历数据框,将新字段添加到系列,然后将该系列附加到 csv?

将一列附加到多个 csv 文件中,每行包含一个常量

将日期列添加到python中的附加输出csv文件