ค้นหาเว็บไซต์

วิธีใช้ Import-CSV ใน PowerShell


คุณกำลังมองหาวิธีที่ง่ายและรวดเร็วในการนำเข้าไฟล์ CSV ไปยัง PowerShell หรือไม่? การนำเข้าข้อมูลจากไฟล์ CSV เป็นหนึ่งในงานที่มีประโยชน์ที่สุดในการทำงานกับชุดข้อมูลขนาดใหญ่ ด้วย cmdlets จำนวนมากของ PowerShell ทำให้ง่ายต่อการแยกวิเคราะห์ CSV ของคุณอย่างรวดเร็วและใช้เป็นอินพุตสำหรับสคริปต์อัตโนมัติหรือกระบวนการอื่น ๆ การทำความเข้าใจ Import-CSV cmdlet และการแยกวิเคราะห์ไฟล์ CSV ถือเป็นทักษะที่จำเป็นสำหรับมืออาชีพของ PowerShell ในบทความนี้ ผมจะแนะนำคุณตลอดขั้นตอนการนำเข้าไฟล์ CSV โดยใช้ PowerShell เราจะสำรวจวิธีการต่างๆ ในการนำเข้าไฟล์ CSV ที่มีและไม่มีส่วนหัว โดยใช้ ForEach loop และวิธีจัดการกับปัญหาทั่วไปที่อาจเกิดขึ้น

ข้อมูลเบื้องต้นเกี่ยวกับการนำเข้าไฟล์ CSV โดยใช้ PowerShell

PowerShell คือเชลล์บรรทัดคำสั่งและภาษาสคริปต์ที่ใช้กันอย่างแพร่หลายในอุตสาหกรรมไอที PowerShell นำเสนอชุดเครื่องมืออันทรงพลังสำหรับการจัดการและทำให้ระบบที่ใช้ Windows เป็นอัตโนมัติ หนึ่งในคุณสมบัติที่มีประโยชน์ที่สุดของ PowerShell ก็คือความสามารถในการนำเข้าและส่งออกไฟล์ CSV

ไฟล์ CSV (ค่าที่คั่นด้วยเครื่องหมายจุลภาค) เป็นรูปแบบไฟล์ทั่วไปสำหรับจัดเก็บและแลกเปลี่ยนข้อมูล ไฟล์ CSV จัดเก็บข้อมูลในรูปแบบตาราง โดยแต่ละแถวแสดงถึงบันทึก และแต่ละคอลัมน์แสดงถึงฟิลด์ การนำเข้าไฟล์ CSV โดยใช้ PowerShell ช่วยให้คุณช่วยทำงานด้านการดูแลระบบโดยอัตโนมัติโดยการนำเข้าข้อมูลการกำหนดค่า รายชื่อผู้ใช้ หรือข้อมูลอื่นๆ ที่เกี่ยวข้องจากไฟล์ CSV

ทำความเข้าใจกับ PowerShell Import-CSV Cmdlet

PowerShell มี cmdlet ในตัวที่เรียกว่า Import-Csv ซึ่งช่วยให้คุณสามารถนำเข้าไฟล์ CSV ไปยังสภาพแวดล้อม PowerShell ของคุณได้ cmdlet นี้จะอ่านเนื้อหาของไฟล์ CSV และแปลงเป็นคอลเลกชันของออบเจ็กต์ ทำให้ง่ายต่อการทำงานและจัดการข้อมูล Import-Csv cmdlet จะตรวจจับส่วนหัวในไฟล์ CSV โดยอัตโนมัติ และใช้เพื่อตั้งชื่อคุณสมบัติของวัตถุที่สร้างขึ้น ทำให้สะดวกในการเข้าถึงและจัดการข้อมูลโดยใช้ไวยากรณ์คุณสมบัติที่คุ้นเคย

ไวยากรณ์การนำเข้า-CSV

ไวยากรณ์พื้นฐานของ Import-Csv cmdlet คือ:


Import-Csv [-Path] <string[]> [-Delimiter <char>] [-Header <string[]>] [-Encoding <string>] [-UseCulture] [-LiteralPath <string[]>] [<CommonParameters>]

เพื่อให้ง่ายขึ้น เราใช้ Import-CSV cmdlet ตามด้วยเส้นทางไปยังไฟล์ CSV:


Import-CSV -Path "<Path of the CSV File>"

cmdlet นี้มีพารามิเตอร์ที่มีประโยชน์ดังต่อไปนี้:

-Path

พารามิเตอร์ที่จำเป็น ตำแหน่งของไฟล์ CSV ที่จะนำเข้า

-Delimiter

ตัวคั่นที่แยกค่าคุณสมบัติในไฟล์ CSV ค่าเริ่มต้นคือลูกน้ำ (,) ใช้พารามิเตอร์ -UseCulture เพื่อใช้ตัวคั่นรายการที่กำหนดไว้สำหรับวัฒนธรรมปัจจุบันของคอมพิวเตอร์ของคุณ คุณยังสามารถใช้ “(Get-Culture).TextInfo.ListSeparator” ได้ด้วย

-Encoding

ระบุประเภทของการเข้ารหัสอักขระที่ใช้ในไฟล์ CSV เช่น: Unicode | UTF7 | UTF8 | แอสซีไอ | UTF32 |BigEndianUnicode | OEM

-Header

ช่วยให้คุณกำหนดส่วนหัวที่กำหนดเองสำหรับคอลัมน์

ตัวอย่าง: การอ่านไฟล์ CSV โดยใช้ PowerShell

การอ่านไฟล์ CSV โดยใช้ PowerShell ช่วยให้คุณสามารถดูเนื้อหาของไฟล์ CSV ได้อย่างรวดเร็ว คุณสามารถใช้ Import-CSV cmdlet เพื่ออ่านเนื้อหาของไฟล์ CSV และแสดงในคอนโซล PowerShell หากต้องการใช้คำสั่ง Import-CSV คุณจะต้องระบุเส้นทางไปยังไฟล์ CSV เส้นทางอาจเป็นเส้นทางไฟล์ในเครื่องหรือเส้นทางเครือข่าย

ฉันมีข้อมูลต่อไปนี้ในไฟล์ “users.csv”:

Name MailDesignation
Adele Vance AdeleV@Crescent.comIT Consultant
Alex WilberAlexW@Crescent.comIT Support Specialist
Griselda SicilianiDiegoS@Crescent.comWeb Developer
Grady ArchieGradyA@Crescent.comIT Coordinator
Isaiah LangerIsaiahL@Crescent.comSoftware Developer
Johanna LorenzJohannaL@Crescent.comIT Director
Joni ShermanJoniS@Crescent.comSoftware Developer
Lee GuLeeG@Crescent.comSEO Specialist
Lidia HollowayLidiaH@Crescent.comData Scientist

การนำเข้าไฟล์ CSV โดยใช้ PowerShell เป็นกระบวนการที่ไม่ซับซ้อน คุณสามารถใช้ Import-CSV cmdlet เพื่อนำเข้าไฟล์ CSV และสร้างออบเจ็กต์แบบกำหนดเองตามส่วนหัว CSV ต่อไปนี้คือตัวอย่างวิธีอ่านไฟล์ CSV โดยใช้ PowerShell:


#Import the CSV
$CSVData = Import-CSV -Path "C:\Scripts\Users.csv"

#Get the data in Table-like format
$CSVData | Format-Table

รหัสนี้จะอ่านเนื้อหาของไฟล์ CSV ซึ่งอยู่ที่ “C:\Scripts\Users.csv” และแสดงในคอนโซล PowerShell

เมื่อคุณนำเข้าไฟล์ CSV แล้ว คุณสามารถจัดเก็บข้อมูลที่นำเข้าไว้ในตัวแปรเพื่อการจัดการเพิ่มเติมได้ ตัวอย่างเช่น จากนั้นคุณสามารถเข้าถึงข้อมูลในไฟล์ CSV ได้โดยการอ้างอิงถึงคุณสมบัติของออบเจ็กต์ในตัวแปร $csvData เช่น หากต้องการดึงที่อยู่อีเมลของผู้ใช้ทั้งหมด:


$CSVData | Select-Object -ExpandProperty Mail

หากต้องการรับคอลัมน์ทั้งหมดของ CSV ผ่านคุณสมบัติของออบเจ็กต์แบบกำหนดเอง ให้ใช้ Get-Member cmdlet ในกรณีนี้: “$CSVData | Get-Member” ส่งคืน: ชื่อ เมล และการกำหนดเป็นชื่อคอลัมน์


$CSVData | Get-Member -MemberType NoteProperty | Select -ExpandProperty Name

การระบุตัวคั่น

ตามค่าเริ่มต้น Import-CSV cmdlet จะถือว่าเครื่องหมายจุลภาคคั่นคอลัมน์ในไฟล์ CSV อย่างไรก็ตาม คุณสามารถระบุตัวคั่นอื่นได้ เช่น โคลอน (:) หรืออัฒภาค (;) โดยใช้พารามิเตอร์ -Delimiter ตัวอย่างเช่น หากไฟล์ CSV ของคุณใช้เครื่องหมายอัฒภาคเป็นตัวคั่นรายการ คุณสามารถนำเข้าได้ดังนี้:


Import-CSV -Path <Path to CSV file> -Delimiter ";"

แยกวิเคราะห์ข้อมูลไฟล์ CSV ใน PowerShell

Import-CSV cmdlet อ่านไฟล์ CSV และแปลงเป็นตารางของออบเจ็กต์ ซึ่งสามารถจัดการได้อย่างง่ายดายภายใน PowerShell หลังจากนำเข้าข้อมูล CSV แล้ว คุณจะสามารถเข้าถึงแต่ละแถวและคอลัมน์ได้เหมือนกับที่คุณทำกับอาร์เรย์ของออบเจ็กต์อื่นๆ และดำเนินการต่างๆ เช่น การกรอง การเรียงลำดับ การเลือกฟิลด์เฉพาะจากออบเจ็กต์ เป็นต้น

เลือกคอลัมน์เฉพาะจากไฟล์ CSV

การแยกวิเคราะห์ไฟล์ CSV โดยใช้ PowerShell ช่วยให้คุณสามารถดึงข้อมูลเฉพาะจากไฟล์ CSV ได้ คุณสามารถใช้ Select-Object cmdlet เพื่อเลือกคอลัมน์ที่ต้องการจากไฟล์ CSV ต่อไปนี้คือตัวอย่างวิธีแยกวิเคราะห์ไฟล์ CSV โดยใช้ PowerShell:


#Import data from CSV file
$CSVData = Import-CSV -Path "C:\Temp\Employees.csv"

# Select specific columns from the pipeline
$SpecificData = $CSVData | Select-Object Name, Designation

# Display the data in Table format
$SpecificData | Format-Table

รหัสนี้จะนำเข้าไฟล์ CSV ซึ่งอยู่ที่ “C:\Temp\Employees.csv” และเลือกคอลัมน์เฉพาะโดยใช้ Select-Object cmdlet คุณยังสามารถกรองแถวตามเกณฑ์เฉพาะได้โดยใช้ Where-Object cmdlet

การกรองข้อมูล

PowerShell ถือว่าข้อมูล CSV ที่นำเข้าเป็นคอลเลกชันของออบเจ็กต์ ทำให้คุณสามารถใช้เทคนิคเชิงวัตถุที่คุ้นเคยเพื่อโต้ตอบกับข้อมูลได้ เราสามารถใช้ Where-Object cmdlet เพื่อกรองข้อมูล CSV ที่นำเข้าตามเกณฑ์เฉพาะ ตัวอย่างเช่น หากต้องการดึงข้อมูลทั้งหมดด้วยชื่อ “Web Developer”:


$CSVData | Where-Object { $_.Designation -eq "Web Developer" }

ลองมาอีกตัวอย่างหนึ่ง: สมมติว่าไฟล์ที่นำเข้าของคุณมีคอลัมน์ "อายุ" และคุณต้องการรับแถวที่อายุมากกว่าหรือเท่ากับ 18


$CsvData = Import-Csv .\data.csv
$Results = $CsvData | Where-Object { $_.Age -ge 18 }
$Results

รหัสนี้จะกรองข้อมูล CSV ที่นำเข้าเพื่อรวมเฉพาะระเบียนที่มีคุณสมบัติ "อายุ" มากกว่าหรือเท่ากับ 18 แล้วจึงแสดงระเบียนผลลัพธ์

การเรียงลำดับข้อมูล

การเรียงลำดับข้อมูลเป็นการดำเนินการทั่วไปอีกประการหนึ่งเมื่อทำงานกับไฟล์ CSV เราสามารถใช้ Sort-Object cmdlet เพื่อจัดเรียงข้อมูล CSV ที่นำเข้าตามคุณสมบัติตั้งแต่หนึ่งรายการขึ้นไป ตัวอย่างเช่น หากต้องการจัดเรียงข้อมูลตามชื่อตามลำดับจากน้อยไปมาก:


$CSVData | Sort-Object Name

การเพิ่มคุณสมบัติจากการคำนวณ

บางครั้ง คุณอาจต้องเพิ่มคุณสมบัติจากการคำนวณลงในข้อมูล CSV ของคุณ PowerShell ช่วยให้เราทำสิ่งนี้ได้อย่างง่ายดายโดยใช้ Select-Object cmdlet ตัวอย่างเช่น เมื่อต้องการเพิ่มคุณสมบัติจากการคำนวณที่เรียกว่า "FullName" ที่รวมชื่อและนามสกุล:


$CSVData | Select-Object Name, @{Name="FullName"; Expression={ $_.FirstName + " " + $_.LastName }}

การส่งออกข้อมูล

หลังจากจัดการและจัดการข้อมูล CSV แล้ว คุณอาจต้องการส่งออกกลับเป็นไฟล์ CSV หรือรูปแบบอื่น PowerShell จัดเตรียม Export-CSV cmdlet เพื่อจุดประสงค์นี้ ตัวอย่างเช่น หากต้องการส่งออกข้อมูลที่แก้ไขเป็นไฟล์ CSV ใหม่:


$modifiedData | Export-CSV -Path <Path to new CSV file>

การนำเข้าไฟล์ CSV โดยใช้ PowerShell ด้วย ForEach Loop

ลูป foreach เป็นโครงสร้างที่มีประสิทธิภาพใน PowerShell ที่ช่วยให้คุณสามารถวนซ้ำคอลเลกชันของออบเจ็กต์และดำเนินการกับแต่ละรายการได้ การรวม Import-Csv cmdlet เข้ากับลูป foreach จะมีประโยชน์เมื่อคุณต้องการดำเนินการกับแต่ละระเบียนในไฟล์ CSV สิ่งนี้มีประโยชน์สำหรับการดำเนินการแบบแบตช์กับชุดข้อมูลขนาดใหญ่

ต่อไปนี้คือตัวอย่างวิธีใช้ foreach loop เพื่อนำเข้าไฟล์ CSV โดยใช้ PowerShell: ซึ่งจะสร้างตัวแปรชื่อ $CSVData ซึ่งมีอาร์เรย์ของออบเจ็กต์แบบกำหนดเอง หนึ่งรายการสำหรับแต่ละแถวของข้อมูล แต่ละออบเจ็กต์มีคุณสมบัติสามประการ: ชื่อ เมล และการกำหนด เราสามารถเข้าถึงคุณสมบัติเหล่านี้ได้โดยใช้เครื่องหมายจุด (.) ตัวอย่างเช่น ในการแสดงชื่อและการกำหนดของรายการแรก เราสามารถใช้: $CSVData[0].Name, $CSVData[0].Designation


$CSVData = Import-CSV C:\Data\Users.csv

ForEach ($Row in $CSVData) {
    Write-Host $Row.Name
}

รหัสนี้จะนำเข้าไฟล์ CSV ซึ่งอยู่ที่ C:\Data\Users.csv และวนซ้ำแต่ละแถวโดยใช้ foreach loop คุณสามารถดำเนินการใดๆ ในแต่ละแถวภายในลูปได้ เช่น การกรอง การเรียงลำดับ หรือการส่งออกข้อมูล

คุณยังสามารถใช้ลูป “ForEach-Object” เพื่อวนซ้ำแต่ละแถวของไฟล์ CSV และดำเนินการบางอย่างได้ นี่คือตัวอย่าง:


# Import the CSV file
$CSVData = Import-Csv -Path "C:\Data\Users.csv"

# Process each row
$CSVData | ForEach-Object {
    # Display the value of the "Name" column for the current row
    Write-Output $_.Name
}

ในสคริปต์นี้ Import-Csv ใช้เพื่อนำเข้าข้อมูลจากไฟล์ CSV ไปยังตารางของออบเจ็กต์ ซึ่งจัดเก็บไว้ในตัวแปร $CSVData ForEach-Object cmdlet (นามแฝงเป็น %) จากนั้นวนซ้ำแต่ละวัตถุในตาราง

ภายในบล็อกสคริปต์ ForEach-Object $_ หมายถึงวัตถุปัจจุบัน ดังนั้น Write-Output $_.Name จะแสดงค่าของคุณสมบัติ Name ของออบเจ็กต์ปัจจุบัน ซึ่งสอดคล้องกับคอลัมน์ Name ในไฟล์ CSV

การนำเข้าไฟล์ CSV ด้วยส่วนหัวโดยใช้ PowerShell

เมื่อนำเข้าไฟล์ CSV ที่มีส่วนหัว PowerShell จะใช้ส่วนหัวเพื่อตั้งชื่อคุณสมบัติของออบเจ็กต์ที่สร้างจากข้อมูล CSV โดยอัตโนมัติ สิ่งนี้ช่วยให้คุณเข้าถึงข้อมูลโดยใช้ไวยากรณ์คุณสมบัติที่คุ้นเคย ตัวอย่างเช่น หากไฟล์ CSV ของคุณมีคอลัมน์ "ชื่อ" คุณสามารถเข้าถึงค่าในคอลัมน์นั้นได้โดยการอ้างอิงคุณสมบัติ "ชื่อ" ของออบเจ็กต์ที่นำเข้า

การนำเข้าไฟล์ CSV ที่มีส่วนหัวโดยใช้ PowerShell เป็นลักษณะการทำงานเริ่มต้นของ Import-CSV cmdlet cmdlet สร้างวัตถุแบบกำหนดเองตามส่วนหัวของไฟล์ CSV

ต่อไปนี้เป็นตัวอย่างวิธีการนำเข้าไฟล์ CSV ที่มีส่วนหัวโดยใช้ PowerShell:


$Data = Import-CSV C:\Data\Employee.csv

รหัสนี้จะนำเข้าไฟล์ CSV ซึ่งอยู่ที่ “C:\Data\Employee.csv” และสร้างออบเจ็กต์แบบกำหนดเองตามส่วนหัวของไฟล์

การนำเข้าไฟล์ CSV โดยไม่มีส่วนหัวโดยใช้ PowerShell

เมื่อนำเข้าไฟล์ CSV โดยปกติแถวแรกจะถือเป็นแถวส่วนหัว โดยระบุชื่อของคุณสมบัติของออบเจ็กต์ ในบางกรณี คุณอาจมีไฟล์ CSV ที่ไม่มีส่วนหัวของคอลัมน์ เมื่อนำเข้าไฟล์ดังกล่าว PowerShell จะสร้างออบเจ็กต์ที่มีชื่อคุณสมบัติเริ่มต้น เช่น “Column1”, “Column2” และอื่นๆ หากต้องการนำเข้าไฟล์ CSV ที่ไม่มีส่วนหัว คุณสามารถใช้พารามิเตอร์ -Header ของ Import-Csv cmdlet เพื่อระบุแถวส่วนหัวของคอลัมน์ ตัวอย่างเช่น หากไฟล์ของคุณชื่อ "Employee.csv" และคุณต้องการใช้ "ชื่อ", "อีเมล" และ "การกำหนด" เป็นชื่อคอลัมน์ ให้ใช้:


$data = Import-CSV C:\Scripts\Employee.csv -Header "Name","Email","Designation"

รหัสนี้จะนำเข้าไฟล์ CSV ซึ่งอยู่ที่ C:\Data\Employee.csv และสร้างส่วนหัวที่กำหนดเองสำหรับแต่ละคอลัมน์

การนำเข้าไฟล์ CSV ลงในอาร์เรย์ใน PowerShell

นอกเหนือจากการนำเข้าไฟล์ CSV ไปยัง PowerShell เป็นออบเจ็กต์แล้ว คุณยังสามารถนำเข้าไฟล์เหล่านั้นลงในอาร์เรย์ได้อีกด้วย การนำเข้าไฟล์ CSV ลงในอาร์เรย์จะมีประโยชน์เมื่อคุณต้องการดำเนินการที่ต้องมีการเข้าถึงข้อมูลตามลำดับหรือจัดทำดัชนี นี่คือวิธีที่คุณสามารถบรรลุเป้าหมายได้:

  1. นำเข้าไฟล์ CSV โดยใช้ import-csv cmdlet และกำหนดให้กับตัวแปร ตัวอย่างเช่น: $csvData=import-csv C:\Path\to\file.csv
  2. ขณะนี้ข้อมูล CSV ที่นำเข้าถูกจัดเก็บไว้ในตัวแปร $csvData ซึ่งคุณสามารถเข้าถึงและจัดการได้ตามต้องการโดยใช้การจัดทำดัชนีอาร์เรย์และการดำเนินการอื่นๆ ที่เกี่ยวข้องกับอาร์เรย์

การนำเข้าไฟล์ CSV ลงในอาร์เรย์ทำให้คุณสามารถดำเนินการจัดการข้อมูลขั้นสูง เช่น การเรียงลำดับ การกรอง และการรวมข้อมูล นี่คือตัวอย่าง:


# Import the CSV file
$Array = Import-Csv -Path "C:\Scripts\Users.csv"

# Now, $array is an array of objects. Each object corresponds to a line in the CSV file. E.g., to Get the first row:
$row = $array[0]

# Get the value of the 'Name' column in the first row
$name = $row.Name

ในตัวอย่างนี้ Import-Csv จะอ่านไฟล์ CSV ในเส้นทางที่ระบุและแปลงเป็นอาร์เรย์ของอ็อบเจ็กต์ ซึ่งจัดเก็บไว้ในตัวแปร $array จากนั้น $array[0] จะถูกใช้เพื่อเข้าถึงแถวแรกในอาร์เรย์ (อาร์เรย์ PowerShell มีดัชนี 0) และ $row.Name ใช้เพื่อเข้าถึงคอลัมน์ชื่อของแถวนั้น

แนวทางปฏิบัติที่ดีที่สุดสำหรับการนำเข้าและทำงานกับไฟล์ CSV ใน PowerShell

เมื่อทำงานกับไฟล์ CSV ใน PowerShell ให้พิจารณาเคล็ดลับและแนวทางปฏิบัติที่ดีที่สุดต่อไปนี้เพื่อให้แน่ใจว่ากระบวนการมีประสิทธิภาพและปราศจากข้อผิดพลาด:

  1. ตรวจสอบไฟล์ CSV: ก่อนที่จะนำเข้าไฟล์ CSV ให้ตรวจสอบโครงสร้างและเนื้อหาเพื่อให้แน่ใจว่าตรงตามความคาดหวังของคุณ ตรวจสอบว่าส่วนหัวและข้อมูลอยู่ในรูปแบบที่ถูกต้อง และไม่มีค่าที่ขาดหายไปหรือไม่สอดคล้องกัน
  2. จัดการการแปลงประเภทข้อมูล: ไฟล์ CSV จะจัดเก็บข้อมูลทั้งหมดเป็นข้อความ แม้ว่าค่าดั้งเดิมจะเป็นประเภทข้อมูลอื่นก็ตาม เมื่อทำงานกับข้อมูล CSV ที่นำเข้า ตรวจสอบให้แน่ใจว่าได้จัดการกับการแปลงประเภทข้อมูลที่จำเป็นโดยใช้ตัวดำเนินการแคสต์หรือการแปลงของ PowerShell
  3. ใช้การจัดการข้อผิดพลาด: เมื่อนำเข้าไฟล์ CSV อาจมีกรณีที่ข้อมูลไม่สอดคล้องกับรูปแบบที่คาดหวังหรือมีข้อผิดพลาด ใช้กลไกการจัดการข้อผิดพลาดเพื่อจัดการกับสถานการณ์ดังกล่าวได้อย่างสง่างามและให้ข้อเสนอแนะที่มีความหมายแก่ผู้ใช้
  4. พิจารณาการใช้หน่วยความจำ: การนำเข้าไฟล์ CSV ขนาดใหญ่ไปยัง PowerShell อาจใช้หน่วยความจำจำนวนมาก หากคุณกำลังทำงานกับชุดข้อมูลขนาดใหญ่ ให้ลองใช้เทคนิคต่างๆ เช่น การสตรีมหรือการประมวลผลส่วนเพิ่ม เพื่อลดการใช้หน่วยความจำให้เหลือน้อยที่สุดและปรับปรุงประสิทธิภาพ
  5. ระบุตัวคั่นเสมอหากแตกต่างจากเครื่องหมายจุลภาคเริ่มต้น (,) เพื่อให้แน่ใจว่านำเข้าข้อมูลได้อย่างเหมาะสม
  6. ใช้ประโยชน์จากการกรอง การเรียงลำดับ และคุณสมบัติที่คำนวณ เพื่อจัดการและจัดการข้อมูลอย่างมีประสิทธิภาพ

การแก้ไขปัญหาทั่วไปเมื่อนำเข้าไฟล์ CSV โดยใช้ PowerShell

การนำเข้าไฟล์ CSV โดยใช้ PowerShell บางครั้งอาจทำให้เกิดปัญหาได้ ต่อไปนี้เป็นปัญหาทั่วไปและวิธีแก้ปัญหา:

  • ไฟล์ CSV มีอักขระพิเศษ: หากไฟล์ CSV มีอักขระพิเศษ เช่น เครื่องหมายเน้นเสียงหรืออักขระที่ไม่ใช่ภาษาอังกฤษ คุณอาจต้องระบุการเข้ารหัสเมื่อนำเข้าไฟล์ ใช้พารามิเตอร์ -Encoding กับ Import-CSV cmdlet เพื่อระบุการเข้ารหัส
  • ไม่พบไฟล์ CSV: หากไม่พบไฟล์ CSV ตรวจสอบให้แน่ใจว่าเส้นทางถูกต้องและคุณมีสิทธิ์ในการเข้าถึงไฟล์
  • ไฟล์ CSV มีคอลัมน์หรือแถวว่าง: หากไฟล์ CSV มีคอลัมน์หรือแถวว่าง ให้ใช้พารามิเตอร์ -Delimiter เพื่อระบุตัวคั่นที่ใช้ในไฟล์ หากตัวคั่นไม่ใช่เครื่องหมายจุลภาค ให้ใช้พารามิเตอร์ -Delimiter เพื่อระบุตัวคั่น

บทสรุปและความคิดสุดท้าย

ในคู่มือที่ครอบคลุมนี้ เราได้สำรวจขั้นตอนการนำเข้าไฟล์ CSV ใน PowerShell เราเริ่มต้นด้วยการทำความเข้าใจพื้นฐานของการจัดการข้อมูลและบทบาทของไฟล์ CSV ในกระบวนการนี้ จากนั้นเราเจาะลึกเข้าไปใน import-csv cmdlet โดยให้ภาพรวมของฟังก์ชันและความสามารถของมัน หลังจากนั้น เราได้ให้คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการนำเข้าไฟล์ CSV ไปยัง PowerShell ซึ่งครอบคลุมสถานการณ์ที่มีและไม่มีส่วนหัว นอกจากนี้เรายังได้พูดคุยถึงตัวอย่างและกรณีการใช้งานของการนำเข้าไฟล์ CSV โดยเน้นถึงประโยชน์ของความสามารถในการจัดการข้อมูลของ PowerShell สุดท้ายนี้ เราได้แชร์เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุดเพื่อเพิ่มประสิทธิภาพประสบการณ์ของคุณในการนำเข้าและทำงานกับไฟล์ CSV ใน PowerShell

เมื่อปฏิบัติตามคำแนะนำในบทความนี้ คุณสามารถนำเข้าไฟล์ CSV โดยใช้ PowerShell ได้อย่างง่ายดายและมีประสิทธิภาพ อย่าลืมแก้ไขปัญหาทั่วไป เช่น อักขระพิเศษและคอลัมน์ว่าง เพื่อให้กระบวนการนำเข้าราบรื่น ด้วยทักษะเหล่านี้ คุณสามารถยกระดับการจัดการข้อมูลของคุณไปอีกระดับและเป็นผู้เชี่ยวชาญด้าน PowerShell

คำถามที่พบบ่อย:

ฉันจะคัดลอกข้อมูลจาก CSV ไปยัง Excel โดยใช้ PowerShell ได้อย่างไร

หากคุณยังไม่ได้ติดตั้งโมดูล “ImportExcel” ให้ติดตั้งด้วย: Install-Module -Name “ImportExcel” เมื่อติดตั้งแล้ว คุณสามารถนำเข้าข้อมูล CSV และบันทึกเป็นไฟล์ Excel โดยใช้ Export-Excel cmdlet เช่น.,

#Import the CSV file
$CSVData = Import-Csv -Path "C:\Scripts\Employees.csv"
#Export the data to an Excel file
$CSVData | Export-Excel -Path "C:\Scripts\Employees.xlsx"

จะแสดงเอาต์พุตในรูปแบบตารางใน PowerShell ได้อย่างไร

หากต้องการแสดงผลลัพธ์ในรูปแบบตารางใน PowerShell คุณสามารถใช้ Format-Table cmdlet cmdlet นี้ช่วยให้คุณสามารถจัดรูปแบบและจัดระเบียบเอาต์พุตของคุณเป็นคอลัมน์และแถว ทำให้อ่านและวิเคราะห์ได้ง่ายขึ้น เพียงไพพ์เอาต์พุตของคุณไปที่ Format-Table แล้วระบุคุณสมบัติที่คุณต้องการแสดงเป็นคอลัมน์ ตัวอย่างเช่น คุณสามารถใช้คำสั่งต่อไปนี้:

Get-Process | Format-Table Name, Id, CPU
This will display the process name, ID, and CPU usage in a table format.

How to import multiple CSV files in PowerShell?

To import multiple CSV files from a folder in PowerShell, you can use the Get-ChildItem and Import-Csv cmdlets in a loop. Here is an example of how to do it:

#Get a list of the CSV files in a directory

$CSVFiles=Get-ChildItem -Path "C:\Scripts\Users" -Filter "*.csv"
#Initialize an array to catch data from the CSV files
$csvData=@()
#วนซ้ำไฟล์ CSV แต่ละไฟล์
foreach ($csvFile ใน $csvFiles) {
# นำเข้าไฟล์ CSV
$csvContent=Import-Csv -Path $csvFile.FullName
# เพิ่มข้อมูลจากไฟล์ CSV ไปยังอาร์เรย์
$csvData += $csvContent
}
#ตอนนี้ $csvData มีข้อมูลที่รวมกันจากไฟล์ CSV ทั้งหมด
$csvData

ฉันจะอ่านไฟล์ CSV ทีละบรรทัดใน PowerShell ได้อย่างไร

หากต้องการอ่านไฟล์ CSV ทีละบรรทัด ใน PowerShell คุณสามารถใช้ cmdlet “Import-Csv” พร้อมกับลูป “foreach” นี่คือตัวอย่างวิธีที่คุณสามารถทำได้:
#รับเนื้อหาของไฟล์ CSV
$csvContent=Get-Content -Path "C:\Scripts\Users.csv"
#วนซ้ำแต่ละบรรทัด
foreach ($line in $csvContent) {
# แสดงบรรทัด
Write-Output $line
}

ฉันจะอ่านข้อมูลจาก Excel ใน PowerShell ได้อย่างไร

สมมติว่าคุณได้ติดตั้งโมดูล “ImportExcel” บนพีซีของคุณ ต่อไปนี้เป็นวิธีอ่านข้อมูลจากไฟล์ Excel:

$data = Import-Excel -Path "C:\Scripts\Users.xlsx"
# Display the data
$data

จะนำเข้าผู้ใช้ AD จาก CSV PowerShell ได้อย่างไร

หากต้องการนำเข้าผู้ใช้ Active Directory จากไฟล์ CSV โดยใช้ PowerShell คุณสามารถใช้ Import-Csv cmdlet เพื่ออ่านไฟล์ CSV จากนั้นวนซ้ำแต่ละแถวและสร้างบัญชีผู้ใช้ใน Active Directory โดยใช้ New-ADUser cmdlet

#Import the CSV file
$users = Import-Csv -Path C:\Path\To\Users.csv
#Loop over each row
foreach ($user in $users) {
# Create a new AD user
New-ADUser -Name $user.Name
-AccountPassword $user.Password `
-Enabled $true
}

จะส่งออกอาร์เรย์เป็น CSV ใน PowerShell ได้อย่างไร

ใน PowerShell คุณอาจต้องแปลงแต่ละรายการในอาร์เรย์ให้เป็นออบเจ็กต์ จากนั้นจึงส่งออกอาร์เรย์เป็นไฟล์ CSV ได้โดยใช้ Export-Csv cmdlet นี่เป็นตัวอย่างง่ายๆ:

#Create an array
$Array = @("John","Jane","Jacob","Jonathon","Julia")
#Convert array to custom objects
$ObjArray = $Array | ForEach-Object { [PSCustomObject]@{Value = $_}}
#Export the array to a CSV file
$ObjArray | Export-Csv -Path "C:\Scripts\Output.csv" -NoTypeInformation

เพิ่มเติมที่นี่: วิธีการส่งออกเป็น CSV จาก PowerShell

บทความที่เกี่ยวข้อง