2016-12-12 20 views
1

電子メールアドレスのリストがある場合。csvファイルの列に文字列を追加する方法

Name, Status, 
JSmith, active, 
ASmith, active, 
JDoe, inactive

これらの値をlist.csvファイル(Name列)から取り出し、それぞれの末尾に@ mail.comを追加したいとします。

出力ファイルは、私が試してみましょう。この

[email protected], 
[email protected], 
[email protected]
Import-Csv list.csv | Format-Table column2 
+3

あなたは電子を掲載するものですあなたが達成したいxact出力フォーマット? –

答えて

1

ようになります。

input.csv:

Name,Status 
JSmith,active 
ASmith,active 
JDoe,inactive 

コード(ファイルがデスクトップ上にある):

# import csv file 
Import-Csv "$env:USERPROFILE\Desktop\input.csv" -Delimiter "," | 
    # create calculated property 
    Select-Object @{ Name = "Email"; Expression = { "$($_.Name)@mail.com" } } | 
    # remove column header for export 
    Select-Object -ExpandProperty Email | 
    # export to simple text file 
    Out-File "$env:USERPROFILE\Desktop\output.txt" 

のoutput.txt:

[email protected] 
[email protected] 
[email protected] 
1

例:

Import-Csv Test.csv | ForEach-Object { 
    New-Object PSObject -Property ([Ordered] @{ 
    "Name" = $_.Name 
    "Status" = $_.Status 
    "Email" = "{0}@mail.com" -f $_.Name 
    }) 
} | Export-Csv Test2.csv -NoTypeInformation 

これにより、新しい列の新しいCSVファイルが出力されます。 (この例では、[Ordered]属性によるPowerShellのV3が必要です。あなたはPowerShellのv2の中で動作する例えば[Ordered]を削除する必要があります。)

あなただけの唯一の@mail.comが追加でCSVファイルと出力名]列をインポートする場合:旧姓場合は単に、あなたがファイルに送ることができる(、[string]インスタンスとして電子メールアドレスの配列を作成したい場合は

Import-Csv Test.csv | ForEach-Object { 
    "{0}@mail.com" -f $_.Name 
} | Out-File Output.txt 
+0

こんにちはビル、私はあなたのインデントが2スペースだけの理由について興味があります、あなたはPowerGUIのような別のエディタを使用していますか? – sodawillow

+0

私は[Visual Studio Code](http://code.visualstudio.com/)を使用しています。 –

0

はちょうどそれ

$yourfile="c:\temp\youfile.csv" 

(Import-Csv $yourfile | select *, @{N="Email"; E={"{0}@mail.com" -f $_.Name }}) | 
export-csv $yourfile -notype 
0

行いますDED):

> (Import-csv list.csv).Name | % { "[email protected]" } 
[email protected] 
[email protected] 
[email protected] 

あなたはにしたい場合は、必要に応じてあなたは、Export-Csvで再エクスポートすることができ、電子メールアドレス()と名前を交換するための入力でName列を変更:

> Import-csv list.csv | % { $_.Name += '@mail'; $_ } 

Name  Status 
----  ------ 
[email protected] active 
[email protected] active 
[email protected] inactive 

あなたは、電子メールアドレスの欄を追加にしたい場合:

> Import-csv list.csv | % { $name = $_.Name; $_ | Add-Member 'Email' "[email protected]"; $_ } 

Name Status Email   
---- ------ -----   
JSmith active [email protected] 
ASmith active [email protected] 
JDoe inactive [email protected] 
関連する問題