Powershell, CSV соответствуют строке и столбцу, чтобы изменить другой столбец - PullRequest
0 голосов
/ 30 октября 2019

Моя проблема довольно проста, у меня есть CSV-файл с таким форматом:

Client   Status       Goal       Project
A         Done         Done       Waiting
B         Finished     Done       Cancelled
C                      Waiting    Finished
D         Done         Done       Done

Теперь мой вопрос прост, я хочу, например, обновить значение в столбце «Цель'соответствует клиенту' B '

Я знаю, что могу выполнить import-csv и, используя вычисляемые свойства, изменить столбец, но я понятия не имею, как я могу изменить конкретную строку в столбце, которая соответствует другой строке вдругой столбец, и это мой вопрос. Я хочу, например, изменить Ожидание на Завершенного клиента C или отменить на Ожидание на клиенте B.

1 Ответ

1 голос
/ 30 октября 2019

Вы можете сделать это примерно так:

$csv = Import-Csv 'D:\clientprojects.csv'
($csv | Where-Object {$_.Client -eq 'C'}).Goal = 'Finished'
($csv | Where-Object {$_.Client -eq 'B'}).Project = 'Waiting'

#output on console
$csv

# write to new CSV file
$csv | Export-Csv -Path 'D:\clientprojects-updated.csv' -NoTypeInformation

вывод на консоль:

Client Status   Goal     Project 
------ ------   ----     ------- 
A      Done     Done     Waiting 
B      Finished Done     Waiting 
C               Finished Finished
D      Done     Done     Done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...