1 Câu hỏi: Powershell xuất dữ liệu CSV thành nhiều dòng thay vì một dòng

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi có tệp CSV có dữ liệu về một số người dùng và id và tôi phải thêm vào mỗi mục nhập một thư được tạo bởi name.surname@domain của họ. Trong khi nó quản lý để in nó thành một tệp, khi tôi mở tệp, nó được định dạng để mỗi một cột được phân tách thành một mục nhập mỗi.

$origin = Get-Content $file

$origin = foreach{ $line= $_.Split(",")

$line+","+line[0].ToLower()+"."+line[1].ToLower()+"@"+$domain

} | Set-Content $outputfile

Nếu tệp có 1 mục nhập như

john,doe,1234

đầu ra của tệp phải là

john,doe,1234,john.doe@mail.com

nhưng thay vào đó, nó in từng thuộc tính dưới dạng cột

john
doe
1234
@
mail.com

Tôi đang sử dụng loại in sai hay vòng lặp sai?

    
- 2
  1. Sử dụng Import-Csv để đọc dữ liệu, nếu không có tiêu đề, chỉ định với tham số -Header. Đọc Nhận trợ giúp Nhập-Csv
    2019-05-08 16: 12: 23Z
  2. Mã bạn đã đăng cũng không hợp lệ, thiếu $ và dòng thứ 2 phải là $origin | foreach{ $line= $_.Split(",") Ngoài ra $line là một mảng do phân tách chứa 3 phần tử [0. ], nếu bạn xuất một mảng, các phần tử theo mặc định trên sep. dòng. Vì vậy, nó phải là $_+","+$line[0].ToLower()+"."+$line[1].ToLower()+"@"+$domain
    2019-05-08 16: 36: 33Z
1 Câu trả lời                              1                         

Tệp là tệp .csv. Tận dụng điều đó.

Import-Csv -Path './joe.csv' -Header fname, lname, empnum |
    Select-Object -Property *, @{Name='email';Expression={$_.fname + '.' + $_.lname + '@mail.com'}} |
    Export-Csv -Path './joe2.csv' -NoTypeInformation
    
0
2019-05-08 16: 22: 02Z
nguồn đặt đây