PowerShell แยกและรับมูลค่าสุดท้าย [4 วิธี]
ใช้วิธี Split()
ใช้เมธอด Split() กับตัวดำเนินการจัดทำดัชนีเพื่อแยกสตริงที่ระบุและรับค่าสุดท้ายใน PowerShell
ใช้ Split() กับตัวดำเนินการจัดทำดัชนี:
$string = "This is a sample string"
$lastElement = ($string.Split(" "))[-1]
Write-Host "The last element of '$string' is '$lastElement'"เอาท์พุท :
The last element of 'This is a sample string' is 'string'ขั้นแรก เรากำหนดตัวแปร $string และกำหนดค่าเริ่มต้นด้วยค่าสตริง ดังที่แสดงในกรอบโค้ดด้านบน ต่อไป เราใช้เมธอด Split() ส่งช่องว่างเป็นตัวคั่น และเชื่อมโยงวิธีนี้กับ $string เพื่อแยกทุกที่ที่พบช่องว่าง
เราใส่เอาต์พุตที่ส่งคืนโดยเมธอด Split() ในวงเล็บ และใช้ตัวดำเนินการจัดทำดัชนี ([]) เพื่อรับค่าสุดท้าย ใน PowerShell เราสามารถใช้ -1 เพื่อรับดัชนีหรือองค์ประกอบสุดท้ายจากอาร์เรย์ สุดท้ายนี้ เราใช้ Write-Host cmdlet เพื่อพิมพ์เอาต์พุตที่กำหนดเองโดยแสดงสตริงทั้งหมดและองค์ประกอบสุดท้ายที่หุ้มด้วยเครื่องหมายคำพูดเดี่ยว
ใช้เมธอด Split() กับ cmdlet Select-Object เพื่อแยกสตริงที่กำหนดและรับค่าสุดท้ายใน PowerShell
ใช้ Split() กับ Select-Object Cmdlet:
$string = "This is a sample string"
$lastElement = ($string.Split(" ")) | Select-Object -Last 1
Write-Host "The last element of '$string' is '$lastElement'"เอาท์พุท :
The last element of 'This is a sample string' is 'string'โค้ดนี้คล้ายกับโค้ดก่อนหน้า แต่เราส่งเอาต์พุตของเมธอด Split() ไปที่ Select-Object cmdlet
cmdlet นี้ใช้เพื่อเลือกคุณสมบัติที่ระบุของวัตถุหรือชุดของวัตถุ นอกจากนี้เรายังสามารถใช้ cmdlet นี้เพื่อเลือกจำนวนวัตถุที่กำหนด วัตถุที่ไม่ซ้ำ หรือวัตถุในตำแหน่งเฉพาะในอาร์เรย์ที่ระบุ นอกจากนี้ เราสามารถใช้ -First, -Last, -Skip, -Unique และ - จัดทำดัชนีพารามิเตอร์เพื่อเลือกวัตถุจากคอลเลกชัน เช่น อาร์เรย์
เราใช้ Select-Object cmdlet กับพารามิเตอร์ -Last ซึ่งตั้งค่าเป็น 1 เพื่อรับองค์ประกอบสุดท้ายของ $สตริง. สุดท้าย เราใช้ Write-Host cmdlet เพื่อแสดงผลลัพธ์ที่กำหนดเองบนคอนโซล PowerShell
นอกจากนี้เรายังสามารถระบุจำนวนคำ
2,3, … หรือnที่นำหน้าด้วยพารามิเตอร์-Lastเพื่อให้มันเป็นองค์ประกอบสตริงเดียว
ใช้ตัวดำเนินการ -Split
ใช้ตัวดำเนินการ -Split กับตัวดำเนินการจัดทำดัชนีเพื่อแยกสตริงที่ระบุและรับค่าสุดท้ายใน PowerShell
ใช้ -Split กับตัวดำเนินการสร้างดัชนี:
$string = "This is a sample string"
$lastElement = ($string -Split " ")[-1]
Write-Host "The last element of '$string' is '$lastElement'"
เอาท์พุท :
The last element of 'This is a sample string' is 'string'ใช้ตัวดำเนินการ -Split กับ Select-Object cmdlet เพื่อแยกสตริงที่ระบุและรับค่าสุดท้ายใน PowerShell
ใช้ -Split ด้วย Select-Object Cmdlet:
$string = "This is a sample string"
$lastElement = ($string -Split " ") | Select-Object -Last 1
Write-Host "The last element of '$string' is '$lastElement'"เอาท์พุท :
The last element of 'This is a sample string' is 'string'ด้านบน ข้อมูลโค้ดทั้งสองจะเหมือนกับตัวอย่างในส่วนก่อนหน้าซึ่งเราใช้เมธอด Split() ข้อแตกต่างเพียงอย่างเดียวคือเราใช้ตัวดำเนินการ -Split ในครั้งนี้ ซึ่งทำเหมือนกับวิธี Split() แต่มีความแตกต่างและความคล้ายคลึงบางประการที่คุณสามารถพบได้ [ที่นี่] (โปรดเพิ่มลิงก์บทความ 'PowerShell Split Path into Array' ซึ่งมาจาก MS11)
จนถึงขณะนี้ เราแยกสตริงแบบง่ายและดึงข้อมูลองค์ประกอบสุดท้ายจากมัน สมมติว่าเรามีเส้นทางเป็นค่าสตริงและได้รับคำสั่งให้ดึงค่าสุดท้ายจากมัน ที่นี่ค่าสุดท้ายอาจเป็นชื่อไฟล์หรือโฟลเดอร์ ดูส่วนต่อไปนี้เพื่อสำรวจ
การใช้คลาส System.IO.Path
หากต้องการแยกเส้นทาง & ไดเร็กทอรีที่ระบุและรับค่าสุดท้ายใน PowerShell:
- เก็บเส้นทางไว้ในตัวแปร
- ใช้เมธอด
GetDirectoryName()เพื่อดึงไดเร็กทอรีจากพาธและจัดเก็บไว้ในตัวแปร - ใช้เมธอด
Split()กับตัวดำเนินการจัดทำดัชนีสองครั้งเพื่อรับองค์ประกอบสุดท้ายจากเส้นทางและไดเร็กทอรีที่สร้างขึ้นในขั้นตอนแรกและขั้นตอนที่สอง - ใช้ cmdlet
Write-Hostเพื่อแสดงผลลัพธ์ที่กำหนดเองบนคอนโซล PowerShell
ใช้คลาส System.IO.Path กับตัวดำเนินการสร้างดัชนี:
$path = "C:\Users\Mehvish\Desktop\Samples\House_Prediction_Using_Two_File_Dataset.pdf"
$directory = [System.IO.Path]::GetDirectoryName($path)
$pathLastElement = ($path.Split("\"))[-1]
$directoryLastElement = ($directory.Split("\"))[-1]
Write-Host "Path: $path"
Write-Host "Last element of the path:'$pathLastElement'"
Write-Host "Directory: $directory"
Write-Host "Last element of the directory:'$directoryLastElement'"เอาท์พุท :
Path: C:\Users\Mehvish\Desktop\Samples\House_Prediction_Using_Two_File_Dataset.pdf
Last element of the path:'House_Prediction_Using_Two_File_Dataset.pdf'
Directory: C:\Users\Mehvish\Desktop\Samples
Last element of the directory:'Samples'หลังจากเก็บเส้นทางไว้ในตัวแปร $path แล้ว เราใช้เมธอด GetDirectoryName() ของคลาส Path ขั้นแรก เราส่ง $path เป็นพารามิเตอร์เพื่อรับไดเร็กทอรี ซึ่งเราจัดเก็บไว้ในตัวแปร $directory ต่อไป เราเชื่อมโยงเมธอด Split() กับตัวแปร $path และ $directory แยกจากกัน และส่ง \ เป็น ตัวคั่นเพื่อแบ่งตามอักขระ \ อย่างไรก็ตาม มีการใช้ตัวดำเนินการจัดทำดัชนีที่มีค่า -1 เพื่อรับค่าสุดท้ายสำหรับทั้งคู่ สุดท้ายนี้ เราใช้ Write-Host cmdlet เพื่อพิมพ์ข้อความที่กำหนดเองเพื่อให้เข้าใจผลลัพธ์ได้ง่ายขึ้น
ใช้คลาส System.IO.Path กับ Select-Object cmdlet เพื่อแยกเส้นทางและไดเรกทอรีที่ระบุ และรับค่าสุดท้ายใน PowerShell
ใช้คลาส System.IO.Path กับ Select-Object:
$path = "C:\Users\Mehvish\Desktop\Samples\House_Prediction_Using_Two_File_Dataset.pdf"
$directory = [System.IO.Path]::GetDirectoryName($path)
$pathLastElement = ($path.Split("\")) | Select-Object -Last 1
$directoryLastElement = ($directory.Split("\"))[-1] | Select-Object -Last 1
Write-Host "Path: $path"
Write-Host "Last element of the path:'$pathLastElement'"
Write-Host "Directory: $directory"
Write-Host "Last element of the directory:'$directoryLastElement'"เอาท์พุท :
Path: C:\Users\Mehvish\Desktop\Samples\House_Prediction_Using_Two_File_Dataset.pdf
Last element of the path:'House_Prediction_Using_Two_File_Dataset.pdf'
Directory: C:\Users\Mehvish\Desktop\Samples
Last element of the directory:'Samples'ตัวอย่างนี้คล้ายกับตัวอย่างก่อนหน้า แต่เราใช้ Select-Object พร้อมด้วยพารามิเตอร์ -Last เพื่อรับค่าสุดท้าย โปรดทราบว่าเราได้เรียนรู้ [Select-Object ในขณะที่ใช้วิธี Split()] แล้ว (เพิ่มลิงก์ของส่วนแรกที่นี่)
จนถึงขณะนี้ เราใช้วิธีการที่แตกต่างกันเพื่อแยกสตริงแบบง่าย แต่จะเกิดอะไรขึ้นถ้าเราจำเป็นต้องแยกสตริงเฉพาะซึ่งเป็นค่าของคุณสมบัติของวัตถุ? ไม่ต้องกังวล; มาดำดิ่งลงในส่วนต่อไปนี้เพื่อเรียนรู้มัน
การใช้ Split(), -Split สำหรับคุณสมบัติของวัตถุ
ใช้เมธอด Split() และตัวดำเนินการ -Split กับตัวดำเนินการจัดทำดัชนีเพื่อแยกค่าคุณสมบัติของออบเจ็กต์และรับองค์ประกอบสุดท้ายใน PowerShell แข็งแกร่ง>
ใช้ Split() และ -Split กับตัวดำเนินการสร้างดัชนี:
$studentObject = New-Object PSObject -Property @{
studentFirstName = "Mehvish"
studentLastName = "Ashiq"
studentAge = 30
Address = "123 Main St, sometown, UK"
}
$lastElementUsingSplitOperator = ($studentObject.Address -Split ' ')[-1]
$lastElementUsingSplitFunction = ($studentObject.Address.Split(' '))[-1]
Write-Host "Last element using -Split operator with indexing operator: '$lastElementUsingSplitOperator'"
Write-Host "Last element using Split() method with indexing operator: '$lastElementUsingSplitFunction'"เอาท์พุท :
Last element using -Split operator with indexing operator: 'UK'
Last element using Split() method with indexing operator: 'UK'สำหรับตัวอย่างข้างต้น เราใช้ New-Object cmdlet เพื่อสร้างวัตถุและเก็บไว้ในตัวแปร $studentObject พารามิเตอร์ -Property ถูกใช้เพื่อตั้งค่าคุณสมบัติของวัตถุใหม่และวิธีการเรียก วัตถุนี้มีคู่ key=value; แต่ละคู่ถูกคั่นด้วยบรรทัดใหม่ (ตัวแบ่งบรรทัด) โดยที่ key เป็นชื่อคุณสมบัติ (เช่น $studentAge) และ value เป็นค่าคุณสมบัติ (เช่น 30)
keyอาจเป็นวิธีการก็ได้ และvalueอาจเป็นอาร์กิวเมนต์ของวิธีการก็ได้
เราได้รับอ็อบเจ็กต์ใหม่จากคลาส PSOObject เนื่องจากช่วยระบุคุณสมบัติที่ไม่มีอยู่บนอ็อบเจ็กต์ ดังนั้น New-Object cmdlet จึงระบุคุณสมบัติให้กับวัตถุเป็น NoteProperty
หลังจากสร้างวัตถุแล้ว เราใช้เครื่องหมายจุด (.) เป็น $studentObject.Address เพื่อดึงค่าของคุณสมบัติ Address จากนั้น เราใช้ตัวดำเนินการ -Split กับตัวดำเนินการจัดทำดัชนีเพื่อรับค่าสุดท้ายที่เราจัดเก็บไว้ในตัวแปร $lastElementUsingSplitOperator ในทำนองเดียวกัน เราได้ดึงข้อมูลองค์ประกอบสุดท้ายโดยใช้เมธอด Split() และเก็บค่าไว้ในตัวแปร $lastElementUsingSplitFunction สุดท้าย เราใช้ Write-Host cmdlet เพื่อแสดงผลลัพธ์ที่กำหนดเองบนคอนโซล
ใช้วิธี Split() และตัวดำเนินการ -Split พร้อมด้วย Select-Object cmdlet เพื่อแยกค่าของคุณสมบัติของวัตถุและ รับองค์ประกอบสุดท้ายใน PowerShell
ใช้ Split() และ -Split ด้วย Select-Object Cmdlet:
$studentObject = New-Object PSObject -Property @{
studentFirstName = "Mehvish"
studentLastName = "Ashiq"
studentAge = 30
Address = "123 Main St, sometown, UK"
}
$lastElementUsingSplitOperator = ($studentObject.Address -Split ' ') | Select-Object -Last 1
$lastElementUsingSplitFunction = ($studentObject.Address.Split(' ')) | Select-Object -Last 1
Write-Host "Last element using -Split operator with Select-Object cmdlet: '$lastElementUsingSplitOperator'"
Write-Host "Last element using Split() method with Select-Object cmdlet: '$lastElementUsingSplitFunction'"เอาท์พุท :
Last element using -Split operator with Select-Object cmdlet: 'UK'
Last element using Split() method with Select-Object cmdlet: 'UK'ตัวอย่างนี้เหมือนกับตัวอย่างสุดท้าย แต่เราใช้ Select-Object cmdlet พร้อมด้วยพารามิเตอร์ -Last เพื่อรับองค์ประกอบสุดท้าย
นั่นคือทั้งหมดที่เกี่ยวกับการแยก PowerShell และรับค่าสุดท้าย
