วิธีการนำเข้า CSV ไปยังอาร์เรย์ใน PowerShell
เมื่อเร็วๆ นี้ ฉันได้รับข้อกำหนดในการนำเข้าข้อมูลจากไฟล์ CSV (Comma Separated Values) ไปยังอาร์เรย์ใน PowerShell เพื่อการประมวลผลเพิ่มเติม ในบทช่วยสอนนี้ ฉันจะแสดงวิธีการนำเข้าข้อมูล CSV ลงในอาร์เรย์ใน PowerShell โดยใช้วิธีต่างๆ พร้อมตัวอย่าง
หากต้องการนำเข้าข้อมูล CSV ลงในอาร์เรย์ใน PowerShell ให้ใช้ Import-Csv cmdlet ตามด้วยเส้นทางของไฟล์ ซึ่งจะสร้างอาร์เรย์ของออบเจ็กต์จากไฟล์ CSV ตัวอย่างเช่น $array=Import-Csv -Path 'file.csv' อ่าน 'file.csv' และจัดเก็บข้อมูลไว้ใน $array แต่ละแถวใน CSV จะกลายเป็นออบเจ็กต์ในอาร์เรย์ โดยมีคุณสมบัติสอดคล้องกับส่วนหัวของคอลัมน์
นำเข้า CSV ไปยังอาร์เรย์ใน PowerShell โดยใช้ Import-Csv Cmdlet
ไฟล์ CSV เป็นไฟล์ข้อความธรรมดาที่มีข้อมูลที่คั่นด้วยเครื่องหมายจุลภาค โดยทั่วไปแต่ละบรรทัดในไฟล์ CSV จะแสดงถึงบันทึกข้อมูล และแต่ละบันทึกจะประกอบด้วยอย่างน้อย 1 ช่อง โดยคั่นด้วยเครื่องหมายจุลภาค ไฟล์ CSV ถูกนำมาใช้กันอย่างแพร่หลายในการแลกเปลี่ยนข้อมูล เนื่องจากสร้าง อ่าน และประมวลผลได้ง่ายสำหรับหลายแอปพลิเคชัน
มีวิธีการต่างๆ ในการนำเข้า CSV ไปยังอาร์เรย์ใน PowerShell
Import-Csv Cmdlet คืออะไร
PowerShell มี cmdlet ในตัวที่เรียกว่า Import-Csv ที่ออกแบบมาโดยเฉพาะสำหรับการอ่านไฟล์ CSV และแปลงเป็นออบเจ็กต์ ตามเอกสารของ Microsoft นั้น Import-Csv cmdlet จะสร้างออบเจ็กต์ที่กำหนดเองที่มีลักษณะคล้ายตารางจากรายการในไฟล์ CSV โดยแต่ละคอลัมน์จะกลายเป็นคุณสมบัติของออบเจ็กต์ที่กำหนดเอง
วิธีที่ง่ายที่สุดในการนำเข้าข้อมูล CSV ลงใน PowerShell คือการใช้ cmdlet Import-Csv cmdlet นี้จะอ่านไฟล์ CSV และแปลงเป็นอาร์เรย์ของออบเจ็กต์ โดยที่แต่ละออบเจ็กต์แทนแถวในไฟล์ CSV
นี่เป็นตัวอย่างพื้นฐาน:
$data = Import-Csv -Path "C:\MyFolder\Users.csv"ในตัวอย่างนี้ $data คืออาร์เรย์ที่แต่ละองค์ประกอบเป็นออบเจ็กต์ที่กำหนดเองซึ่งมีคุณสมบัติสอดคล้องกับส่วนหัวคอลัมน์ในไฟล์ CSV
หลังจากนำเข้าข้อมูล CSV แล้ว คุณสามารถประมวลผลแต่ละระเบียนได้โดยใช้ลูป ForEach นี่คือตัวอย่างที่แสดงแต่ละเรกคอร์ด:
$data = Import-Csv -Path "C:\MyFolder\Users.csv"
foreach ($record in $data) {
Write-Host "Name: $($record.Name), Email: $($record.Email)"
}สมมติว่าไฟล์ CSV มีคอลัมน์ชื่อ "ชื่อ" และ "อีเมล" สคริปต์นี้จะพิมพ์ชื่อและอีเมลของแต่ละระเบียน
ตอนนี้ดูผลลัพธ์ในภาพหน้าจอด้านล่าง หลังจากที่ฉันรันสคริปต์โดยใช้โค้ด VS
หากไฟล์ CSV ของคุณไม่มีส่วนหัว คุณสามารถระบุได้โดยใช้พารามิเตอร์ -Header:
$headers = "Name", "Email", "Department"
$data = Import-Csv -Path "C:\MyFolder\Users.csv" -Header $headersตอนนี้ $data จะใช้ส่วนหัวที่ให้มาเพื่อสร้างวัตถุ
ไฟล์ CSV บางไฟล์อาจใช้ตัวคั่นที่แตกต่างกัน เช่น อัฒภาคหรือแท็บ คุณสามารถระบุตัวคั่นด้วยพารามิเตอร์ -Delimiter:
$data = Import-Csv -Path "C:\MyFolder\Users.csv" -Delimiter ";"
ArrayList เป็นอาร์เรย์แบบไดนามิกที่สามารถขยายหรือย่อได้ตามต้องการ หากต้องการนำเข้าข้อมูล CSV ลงใน ArrayList คุณสามารถใช้ cmdlet Import-Csv ร่วมกับลูป ForEach ได้:
[array]$data = @()
Import-Csv -Path "C:\MyFolder\Users.csv" | ForEach-Object {
$data += $_
}สคริปต์นี้จะอ่านไฟล์ CSV และเพิ่มแต่ละระเบียนลงในอาร์เรย์ $data
นำเข้า CSV ไปยังอาร์เรย์ใน PowerShell - ตัวอย่างจริง
สมมติว่าคุณมีไฟล์ CSV ชื่อ users.csv ซึ่งมีเนื้อหาดังต่อไปนี้
Id,Name,Email
1,John Doe,johndoe@example.com
2,Jane Smith,janesmith@example.com
3,Emily Jones,emilyjones@example.comเพื่อฝึกฝนสิ่งนี้ คุณยังสามารถดาวน์โหลดไฟล์ users.csv ได้ด้วย
หากต้องการนำเข้า CSV นี้ลงในอาร์เรย์ใน PowerShell และแสดงรายละเอียดของผู้ใช้แต่ละราย คุณจะต้องใช้สคริปต์ต่อไปนี้:
# Import the CSV file into an array
$usersArray = Import-Csv -Path "C:\MyFolder\users.csv"
# Loop through the array and display user details
foreach ($user in $usersArray) {
Write-Host "User ID: $($user.Id)"
Write-Host "Name: $($user.Name)"
Write-Host "Email: $($user.Email)"
Write-Host "-------------------"
}เมื่อคุณรันสคริปต์ PowerShell ข้างต้น คุณจะเห็นผลลัพธ์ในภาพหน้าจอด้านล่าง
User ID: 1
Name: John Doe
Email: johndoe@example.com
-------------------
User ID: 2
Name: Jane Smith
Email: janesmith@example.com
-------------------
User ID: 3
Name: Emily Jones
Email: emilyjones@example.com
-------------------บทสรุป
การนำเข้าข้อมูล CSV ลงในอาร์เรย์ใน PowerShell สามารถทำได้ง่ายๆ โดยใช้ Import-Csv cmdlet ในบทช่วยสอน PowerShell นี้ ฉันได้อธิบายวิธีนำเข้า CSV ไปยังอาร์เรย์ใน PowerShell โดยใช้ Import-Csv Cmdlet

