查找ROW并替换CSV中的数据

时间:2019-06-09 14:37:13

标签: powershell

我有3种CSv文件。

我想在第一个列中找到一个单词,然后在列3中更改同一行的数据

我已经尝试过使用Where-Object {$ _。distinguishedName -like“ Jule ”},我可以更改第3行(givenName)中的数据,但文件中的其余部分将丢失。

DistinguishedName                      Enabled GivenName                                                                                                                 
-----------------                      ------- ---------                                                                                                                 
CN=Jule lacroix,CN=Users,DC=test,DC=com True    01000000d0
CN=Marc la,CN=Users,DC=test,DC=com      False   Martin 

2 个答案:

答案 0 :(得分:1)

一种方法是使用foreach循环遍历数据。然后对符合条件的每一行进行更改:

$CSVData = Import-Csv -Path File.csv

foreach ($row in $CSVData) {
    if ($row.DistinguishedName -like "*Jule*") {
       $row.GivenName = "New Name"
    }
}
$CSVData # Will contain the updated data

答案 1 :(得分:0)

两个小时以来我一直在寻找并且找到了解决方法

我在另一个论坛上找到了此解决方案,谢谢您 cduff

$csv = Import-Csv C:\Users\jule\Documents\test\save.csv

$modified = ForEach ($user in $csv) {

    If($user.distinguishedName -like "*s*") {
        #New-ADUser

        $user.GivenName = 'lokil'
    }

    $user

}

$modified

有人可以在}}之间解释$ user的实用程序?

谢谢