【问题标题】:Powershell: Reading in a column from a .CSV file and then adding a specific string to the beginning and exporting againPowershell:从 .CSV 文件中读取列,然后将特定字符串添加到开头并再次导出
【发布时间】:2015-10-22 13:40:47
【问题描述】:

我正在尝试编写一个脚本,该脚本将读取通过向 AD 查询用户信息而生成的 CSV(该部分已完成),但随后将允许我在CSV 文件,然后将其导出。

例如,我们有这个 CSV 文件:

“显示名称”、“办公室”
鲍勃,7142
珍妮特,8923
圣诞老人,0912
NicCage,0823

我想获取“Office”的每个条目,在其前面添加字符串“BUG”,然后将其导出。修改后的 CSV 应如下所示:

“显示名称”、“办公室”
鲍勃,BUG7142
珍妮特,BUG8923
圣诞老人,BUG0912
NicCage,BUG0823

此时,我一直在尝试仅读取“Office”列,然后使用“Write-Host”显示它。这个想法是,如果我能做到这一点,那么也许我可以创建一个新变量,类似于:

$BUG = "BUG"
$NewVar = $BUG$Office

希望它看起来像第二个 CSV 文件。我对 powershell 脚本非常陌生。

到目前为止,我所做的尝试如下:

尝试 #1:

$UserList = Import-CSV C:\Users\username\CSV.csv
$UserList | ForEach-Object ($_.Office) { $UserList }

尝试 #2:

$projectName = import-csv  C:\Users\username\CSV.csv | % {$_.Office}
$BUG = "BUG"
$projectName | ForEach-Object ($_) {$projectName}

尝试 #3:

$UserList = Import-CSV C:\Users\username\CSV.csv
#ForEach ($Office in $Userlist) {
#Write-Host $UserList.Office
#}

尝试 #4:

Import-Csv "C:\Users\username\CSV.csv" -Header       ("displayname","Office","whenCreated","EmailAddress") | Select-Object Office | Export-CSV -Path C:\users\Username\test.csv

在使用 ForEach-Object 循环结构之前,我已经让它只读出办公室号码,但是它永远不会停止读出办公室号码,所以这没有帮助。

我认为我的方向是正确的,但我就是不知道如何修改这样的列。

【问题讨论】:

    标签: csv powershell


    【解决方案1】:

    不要尝试提取Office 列,只需将整个数据集(所有列)通过管道传输到ForEach-Object,更改Office 属性的值并将其传输回Export-Csv

    $Prefix = "BUG"
    Import-Csv .\file.csv | ForEach-Object {
        $_.Office = $Prefix + $_.Office
        $_
    } | Export-Csv .\file_modified.csv -NoTypeInformation
    

    【讨论】:

    • 嗯,我试图运行您的代码(显然更改为正确的路径),但它只给了我一个空白的 .CSV 文件。我还尝试将它通过管道传送到 Write-Host 而不是 Export-CSV 以查看它是否会显示我在做什么,但它没有显示任何内容......很奇怪。
    • 嘿,成功了!太棒了,非常感谢!但是,如果可以的话,我尝试(只是出于好奇)将 $_.Office 而不是所有 $_ 传输到 Export-CSV 并且它做了一些奇怪的事情,它只导出了每个办公室号码的第一个数字.. .你给我的很好所以不用回答,我只是好奇。
    • @Redcoatwright 你确定它没有导出每个Office 字符串的长度吗?
    • 我在输出文件的顶部得到以下内容#TYPE System.Management.Automation.PSCustomObject
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 2019-08-17
    • 2021-01-22
    相关资源
    最近更新 更多