2016-11-10 2 views
0

5 개의 열이있는 csv 파일이 있습니다. 마지막 열은 학생 학년입니다. 내가하고 싶은 일은 등급 수준에 따라 해당 열의 값을 변경하는 것입니다. 예를 들어, 등급이 12 인 경우이를 2016, 11에서 2017로 변경하고 싶습니다.powershell을 사용하여 열의 값을 변경하십시오.

업데이트 : 나는 아래 사용하여 반 작업에 그것을 얻을 않았다

는 학생 ID가 2016 예로도 변경됩니다 거기에 12이 될 것이다있다
Get-Content users.csv | ForEach-Object -Process {$_ -replace '12','2016'} | Set-Content users1.csv 

무엇 발생하는 경우 120045 변화를 가져옵니다 20160045

+0

지금까지 해보신 것은 무엇입니까? 또한 CSV ** 및 ** 예상 결과를 공유하십시오. –

답변

0

에 당신은 foreach 문에서 루프를 csv로를 가져오고 CSV 위해 $ _ (이) 연산자하고 수출 경악을 사용할 수 있습니다

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

명령 파이프 라인 위치 1에서 cmdlet Export-Csv가 표시됩니다. 입력 개체 : –

0

ELDO 당신 코드

큰했다. 나는에서 마지막 라인을 변경해야 않았다

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

나는 또한 문은 내가 필요 정확히 무엇을 달성 할 경우 더 추가 할 수 있었다

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

에.

+0

오 - 잊어 버렸습니다. D - 나는 runspace에서 코드를 검사하지 않았고 직접 앤서에 코드를 지정했습니다. P 그러나보기 좋게, 그것은 당신을 위해 일하고있다. –

관련 문제