2016-11-10 2 views
0

У меня есть файл csv с пятью столбцами. Последний столбец - это уровень учащихся. То, что я хочу сделать, это изменить значение этого столбца на основе уровня уровня. Например, если уровень класса равен 12, я хочу изменить его до 2016, с 11 по 2017, так далее и т. Д.Изменить значение в столбце с помощью powershell

обновление: я получить его в полу работу, используя ниже:

Get-Content users.csv | ForEach-Object -Process {$_ -replace '12','2016'} | Set-Content users1.csv 

Что происходит, если студент имеет идентификатор в нем 12, который получает изменился, а к 2016 году примера будет 120045 получает изменения до 20160045

+0

Что вы пробовали? Кроме того, используйте пример CSV ** и ** ожидаемый результат. –

ответ

0

Вы можете импортировать CSV-файл, цикл его в Еогеасп и использовать _ (это) оператор $, а затем экспортировать в CSV IST

Somesthing как:

# import CSV 
$list = import-csv P:\ath\to\file.csv -Delimiter ";" -Encoding Standard 
# % means foreach 
$list | % { 
    # The grades is the key for each line 
    # the first line of your csv represent the keys you can use 
    # e.g. first colum: Name | Grade | Class 
    # $_.Name | $_.Grade | $_.Class are your keys for every entry (2nd line and above) 

    # here you can work with your grades an do what you want 
    if($_.Grade -eq 11){ 
    # set a new value to the grade in the actual line 
    $_.Grade = 2016 
    } 
} 

# now export the new list into csv 
export-csv P:\ath\to\new.csv -Delimiter ";" -NoTypeInformation 

Это должно быть основополагающим для работы.

Greetz Eldo.O

+0

Я получаю командлет Export-Csv в позиции командного конвейера 1 Значения питания для следующих параметров: InputObject: –

0

Eldo вы код работал большой. Я должен изменить последнюю строку из:

export-csv P:\ath\to\new.csv -Delimiter ";" -NoTypeInformation 

в

$list | Export-Csv P:\ath\to\new.csv -Delimiter "," -NoTypeInformation 

Я также был в состоянии добавить больше, если заявления для достижения именно то, что мне было нужно.

+0

oh - Я забыл: D - я не проверял код в пробеле, напрямую кодовым образом его в anwaser: P Но приятно видеть, что он работает на вас. –