วิธีการเชื่อมต่อสตริงใน PowerShell
ในฐานะผู้ใช้ PowerShell คุณต้องเจอกับการดำเนินการต่อสตริง ใช้เพื่อรวมสองสายขึ้นไปให้เป็นสตริงเดียว การดำเนินการต่อสตริงของ PowerShell เป็นคุณลักษณะสำคัญที่ช่วยให้ผู้ใช้สามารถจัดการข้อมูลในลักษณะที่ไม่เพียงแต่มีประสิทธิภาพ แต่ยังมีความยืดหยุ่นอีกด้วย ไม่ว่าจะเป็นสำหรับการเขียนสคริปต์ การทำงานอัตโนมัติ หรือการจัดการข้อมูล PowerShell นำเสนอหลายวิธีในการรวมสตริง ในคู่มือที่ครอบคลุมนี้ ฉันจะครอบคลุมทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับสตริงที่ต่อกันของ PowerShell ในตอนท้ายของบทความนี้ คุณจะเชี่ยวชาญวิธีการต่างๆ ของการต่อสตริงใน PowerShell
ข้อมูลเบื้องต้นเกี่ยวกับสตริงการต่อข้อมูล PowerShell
ก่อนที่เราจะเจาะลึกวิธีการต่างๆ ของการต่อสตริงใน PowerShell เรามาทำความเข้าใจก่อนว่าการต่อสตริงคืออะไร การต่อสตริงเป็นกระบวนการรวมสตริงตั้งแต่สองสตริงขึ้นไปเป็นสตริงเดียว ใน PowerShell คุณสามารถต่อสตริงโดยใช้วิธีการต่างๆ รวมถึงตัวดำเนินการ วิธีการ และตัวแปร
การต่อสตริงเป็นงานทั่วไปในการเขียนสคริปต์ PowerShell มักใช้เพื่อสร้างไฟล์บันทึก สร้างชื่อไฟล์ และแสดงข้อความ ด้วยการเรียนรู้สตริงที่ต่อกันของ PowerShell คุณจะมีประสิทธิภาพมากขึ้นในงานเขียนสคริปต์ PowerShell และงานอัตโนมัติ
ทำความเข้าใจเกี่ยวกับการต่อสตริง PowerShell
ใน PowerShell คุณสามารถต่อสตริงโดยใช้ตัวดำเนินการ + โอเปอเรเตอร์นี้ใช้เพื่อเพิ่มสตริงตั้งแต่ 2 รายการขึ้นไปเข้าด้วยกัน ตัวอย่างเช่น หากคุณมีสองสตริง $string1 และ $string2 คุณสามารถเชื่อมเข้าด้วยกันได้โดยใช้ตัวดำเนินการ + ดังนี้:
$string1 = "Hello"
$string2 = "World"
$result = $string1 + $string2
$result
ในตัวอย่างนี้ ตัวแปร $result จะมีสตริงที่ต่อกัน “HelloWorld” ตัวดำเนินการ + ยังสามารถใช้เพื่อเชื่อมสตริงมากกว่าสองสายเข้าด้วยกัน
PowerShell เชื่อมต่อวิธีการสตริง
นอกเหนือจากการใช้ตัวดำเนินการ + แล้ว PowerShell ยังมีวิธีการหลายวิธีในการต่อสตริงเข้าด้วยกัน วิธีการเหล่านี้รวมถึงวิธี Concat(), วิธี Join() และวิธี Replace()
Concat() วิธีการใช้ในการเชื่อมสองสตริงขึ้นไป วิธีการนี้รับหนึ่งหรือหลายอาร์กิวเมนต์สตริงและส่งกลับสตริงที่ต่อกัน ตัวอย่างเช่น หากคุณมีสองสตริง $string1 และ $string2 คุณสามารถเชื่อมต่อสตริงทั้งสองได้โดยใช้เมธอด Concat() ดังนี้:
$string1 = "Hello"
$string2 = "World"
$result = [string]::Concat($string1, $string2)
ในตัวอย่างนี้ ตัวแปร $result จะมีสตริงที่ต่อกัน “HelloWorld”
Join() วิธีการใช้ในการเชื่อมอาร์เรย์ของสตริงให้เป็นสตริงเดียว วิธีการนี้ใช้ตัวคั่นเป็นอาร์กิวเมนต์และส่งกลับสตริงที่ต่อกัน ตัวอย่างเช่น หากคุณมีอาร์เรย์ของสตริง $strings คุณสามารถเชื่อมเข้าด้วยกันได้โดยใช้เมธอด Join() ดังนี้:
$strings = "One", "Two", "Three"
$delimiter = "-"
$result = [string]::Join($delimiter, $strings)
ในตัวอย่างนี้ ตัวแปร $result จะมีสตริงที่ต่อกัน “One-Two-Three”
Replace() วิธีการใช้เพื่อแทนที่ส่วนหนึ่งของสตริงด้วยสตริงอื่น เมธอดนี้รับอาร์กิวเมนต์สตริงสองตัว ได้แก่ สตริงที่จะแทนที่และสตริงที่จะแทนที่ และส่งกลับสตริงที่แก้ไข ตัวอย่างเช่น หากคุณมีสตริง $string ที่มีคำว่า “World” คุณสามารถแทนที่ด้วยคำว่า “Universe” ได้โดยใช้เมธอด Replace() เช่นนี้ : :
$string = "Hello World"
$search = "World"
$replace = "Universe"
$result = $string.Replace($search, $replace)
$result
ในตัวอย่างนี้ ตัวแปร $result จะมีสตริง “Hello Universe”
เชื่อมต่อคุณสมบัติของวัตถุ
คุณสามารถเชื่อมคุณสมบัติของวัตถุเข้าด้วยกันโดยใช้วิธีการต่างๆ วิธีที่ง่ายที่สุดคือการอ้างอิงแต่ละคุณสมบัติด้วยชื่อและรวมเข้ากับตัวดำเนินการ + คุณยังสามารถล้อมไว้ในเครื่องหมายคำพูดคู่ได้:
$Employee = New-Object PSObject -Property @{
Id = 51
FirstName = "John"
LastName = "Kennady"
Designation = "Web Developer"
}
Write-Host "$($Employee.Id) - $($Employee.FirstName) $($Employee.LastName) - $($Employee.Designation)"
PowerShell ผนวกเข้ากับสตริง
นอกเหนือจากการต่อสตริงเข้าด้วยกัน PowerShell ยังมีวิธีการต่อท้ายสตริงเข้ากับสตริงที่มีอยู่อีกด้วย สิ่งนี้มีประโยชน์เมื่อคุณต้องการสร้างสตริงทีละน้อยเมื่อเวลาผ่านไป หากต้องการเพิ่มสตริงต่อท้ายสตริงที่มีอยู่ คุณสามารถใช้ตัวดำเนินการ += ตัวอย่างเช่น หากคุณมีสตริงว่าง $result และต้องการเพิ่มสตริง “Hello” ต่อท้าย คุณสามารถทำได้ดังนี้:
$result = "Hello"
$result += "World"
$result
ในตัวอย่างนี้ ตัวแปร $result จะมีสตริง “HelloWorld”
PowerShell เชื่อมต่อสตริงและตัวแปร
ใน PowerShell คุณสามารถเชื่อมต่อสตริงและตัวแปรโดยใช้ตัวดำเนินการ + สิ่งนี้มีประโยชน์เมื่อคุณต้องการสร้างข้อความไดนามิกหรือชื่อไฟล์ที่มีตัวแปร ตัวอย่างเช่น หากคุณมีตัวแปร $name ที่มีชื่อของบุคคล และคุณต้องการสร้างข้อความที่มีชื่อของพวกเขา คุณสามารถทำได้ดังนี้:
$name = "John"
$message = "Hello, " + $name + "!"
$message
ในตัวอย่างนี้ ตัวแปร $message จะมีสตริง “Hello, John!”
การต่อสตริงใน PowerShell - ตัวอย่าง
มาดูตัวอย่างวิธีการต่อสตริงใน PowerShell กัน
ตัวอย่างที่ 1: การเชื่อมต่อสองสายเข้าด้วยกัน
$string1 = "Hello"
$string2 = "World"
$result = $string1 + $string2
ในตัวอย่างนี้ ตัวดำเนินการ “+” จะรวมตัวแปรสตริงและจัดเก็บผลลัพธ์ไว้ในสตริงใหม่ $result ที่จะมี “HelloWorld”
ตัวอย่างที่ 2: การเชื่อมต่อมากกว่าสองสาย
$string1 = "Hello"
$string2 = " "
$string3 = "World"
$result = [string]::Concat($string1, $string2, $string3)
ในตัวอย่างนี้ ตัวแปร $result จะมีสตริง “Hello World”
ตัวอย่างที่ 3: การเชื่อมอาร์เรย์ของสตริงเข้าด้วยกัน
$strings = "One", "Two", "Three"
$delimiter = "-"
$result = [string]::Join($delimiter, $strings)
ในตัวอย่างนี้ ตัวแปร $result จะมีสตริง “One-Two-Three” นี่เป็นอีกตัวอย่างหนึ่งในการรวมองค์ประกอบอาร์เรย์ด้วยเครื่องหมายจุลภาค:
$Array = @("apple", "banana", "orange")
$String = $Array -join ', '
Write-Output $String
PowerShell เชื่อมต่อสตริงกับตัวดำเนินการ
ใน PowerShell คุณสามารถต่อสตริงโดยใช้ตัวดำเนินการต่างๆ ตัวดำเนินการ + เป็นตัวดำเนินการที่ใช้บ่อยที่สุดสำหรับการต่อสตริง อย่างไรก็ตาม มีโอเปอเรเตอร์อื่นๆ ที่คุณสามารถใช้ได้ เช่น โอเปอเรเตอร์ -join และโอเปอเรเตอร์ -f
การใช้โอเปอเรเตอร์ "-join"
ตัวดำเนินการ -join ใช้เพื่อเชื่อมอาร์เรย์ของสตริงให้เป็นสตริงเดียว โอเปอเรเตอร์นี้ใช้ตัวคั่นเป็นอาร์กิวเมนต์และส่งกลับสตริงที่ต่อกัน ตัวอย่างเช่น หากคุณมีอาร์เรย์ของสตริง $strings คุณสามารถเชื่อมเข้าด้วยกันได้โดยใช้ตัวดำเนินการ -join ดังนี้:
$strings = "One", "Two", "Three"
$delimiter = "-"
$result = $strings -join $delimiter
ในตัวอย่างนี้ ตัวแปร $result จะมีสตริง “One-Two-Three”
เชื่อมต่อสตริงและตัวแปรโดยใช้ตัวดำเนินการรูปแบบ
ตัวดำเนินการ -f ใช้ในการจัดรูปแบบสตริง (AKA: การแทนที่สตริง วิธี Placeholder) โอเปอเรเตอร์นี้รับสตริงรูปแบบและอาร์กิวเมนต์ตั้งแต่หนึ่งรายการขึ้นไป แล้วส่งคืนสตริงที่จัดรูปแบบ ตัวอย่างเช่น หากคุณมีตัวแปร $name ที่มีชื่อของบุคคล และคุณต้องการสร้างข้อความที่มีชื่อของพวกเขาโดยใช้สตริงรูปแบบ คุณสามารถทำได้ดังนี้:
$name = "John"
$message = "Hello, {0}!" -f $name
ในตัวอย่างนี้ ตัวแปร $message จะมีสตริง “Hello, John!” ตัวยึดตำแหน่งจะมีหมายเลขขึ้นจาก 0 และวางไว้ระหว่างวงเล็บปีกกา นี่เป็นอีกตัวอย่างหนึ่ง:
$name = "John"
$age = 30
$message = "My name is {0} and I am {1} years old." -f $name, $age
Write-host $message
ในตัวอย่างนี้ เรากำหนดตัวแปรสองตัว ได้แก่ $name และ $age และกำหนดค่า “John” และ 30 ตามลำดับ จากนั้นเราใช้ตัวดำเนินการ “-f” เพื่อแทรกตัวแปรเหล่านี้ลงในสตริง “ชื่อของฉันคือ {0} และฉันอายุ {1} ปี” และเก็บผลลัพธ์ไว้ใน $message เมื่อเราแสดงค่าของ $message มันจะเป็น “ฉันชื่อจอห์น และฉันอายุ 30 ปี”
PowerShell เชื่อมต่อสตริงกับ Join-Path
นอกเหนือจากการต่อสตริงเข้าด้วยกัน PowerShell ยังมีวิธีการรวมเส้นทางโดยใช้ Join-Path cmdlet Join-Path cmdlet ใช้เพื่อรวมสองเส้นทางขึ้นไปไว้ในเส้นทางเดียว cmdlet นี้มีประโยชน์เมื่อทำงานกับระบบไฟล์และไดเร็กทอรี
ข้อแตกต่างหลักระหว่าง PowerShell ต่อสตริงและ Join-Path ก็คือ Join-Path ได้รับการออกแบบมาโดยเฉพาะสำหรับการเข้าร่วมเส้นทางไฟล์ ในขณะที่การต่อสตริงใช้สำหรับการจัดการสตริงทั่วไป Join-Path ยังมีความยืดหยุ่นมากกว่าการต่อสตริง เนื่องจากสามารถรองรับตัวแยกพาธและอักษรระบุไดรฟ์ที่แตกต่างกันได้
Join-Path cmdlet ใน PowerShell รวมเส้นทางและเส้นทางลูกไว้ในเส้นทางเดียว นี่คือโค้ดตัวอย่าง:
$parentPath = "C:\Users\UserName"
$childPaths = "Documents", "Pictures", "Downloads", "Temp"
$fullPaths = $childPaths | ForEach-Object { Join-Path -Path $parentPath -ChildPath $_ }
$fullPaths | ForEach-Object { Write-Output $_ }
Join-Path คำนึงถึงลักษณะเฉพาะของระบบไฟล์และเพิ่มเครื่องหมายสแลชที่จำเป็นโดยอัตโนมัติ ฯลฯ
การใช้ String Builder เพื่อเชื่อมต่อ
คุณยังสามารถใช้วิธีการต่อข้อมูล StringBuilder ในอ็อบเจ็กต์ .Net สำหรับสตริงขนาดใหญ่ได้ เนื่องจากจะให้ข้อได้เปรียบด้านประสิทธิภาพ
# Import StringBuilder from .NET
$stringBuilder = New-Object System.Text.StringBuilder
# Append strings to the StringBuilder
[void]$stringBuilder.Append("Hello")
[void]$stringBuilder.Append("World")
# Convert the StringBuilder to a string and print it
$finalString = $stringBuilder.ToString()
Write-Output $finalString
ข้อผิดพลาดทั่วไปและวิธีการแก้ไข
เมื่อทำงานกับการดำเนินการสตริงที่ต่อ PowerShell คุณอาจพบข้อผิดพลาดทั่วไปบางประการ ข้อผิดพลาดที่พบบ่อยที่สุดบางส่วนและวิธีแก้ไขมีดังนี้
- ข้อผิดพลาด: “คำว่า 'string1+string2' ไม่ได้รับการยอมรับว่าเป็นชื่อของ cmdlet, ฟังก์ชัน, ไฟล์สคริปต์ หรือโปรแกรมที่ทำงานได้” ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามที่จะต่อสายอักขระโดยไม่ใช้ตัวดำเนินการต่อข้อมูล หากต้องการแก้ไขข้อผิดพลาดนี้ ให้ใช้ตัวดำเนินการ "+" เพื่อเชื่อมสตริงเข้าด้วยกัน
- ข้อผิดพลาด: “ไม่สามารถแปลงค่าเป็นประเภท 'System.String'” ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามเชื่อมสตริงกับวัตถุที่ไม่สามารถแปลงเป็นสตริงได้ หากต้องการแก้ไขข้อผิดพลาดนี้ ให้แปลงออบเจ็กต์เป็นสตริงก่อนที่จะต่อเข้าด้วยกัน
- ข้อผิดพลาด: “ไม่สามารถจัดทำดัชนีเป็นอาร์เรย์ว่างได้” ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามที่จะเชื่อมสตริงว่างหรือค่าว่าง หากต้องการแก้ไขข้อผิดพลาดนี้ ให้ตรวจสอบว่าสตริงว่างเปล่าหรือเป็นโมฆะก่อนที่จะต่อเข้าด้วยกัน
- ข้อผิดพลาด: “สตริงอินพุตไม่ได้อยู่ในรูปแบบที่ถูกต้อง” ข้อผิดพลาดนี้เป็นเรื่องปกติเมื่อคุณพยายามแปลงสตริงเป็นข้อมูลประเภทอื่น (เช่น จำนวนเต็มหรือทศนิยม) แต่สตริงไม่มีรูปแบบที่ถูกต้อง สมมติว่าคุณกำลังพยายามเชื่อมสตริงเข้ากับตัวเลขโดยไม่ต้องแปลงตัวเลขนั้นเป็นสตริงก่อน หากต้องการแก้ไข ให้ใช้วิธี ToString()
การเชื่อมโยงสตริงใน PowerShell - วิธีปฏิบัติที่ดีที่สุด
เมื่อเชื่อมต่อสตริงใน PowerShell มีข้อปฏิบัติที่ดีที่สุดบางประการที่ควรคำนึงถึง แนวทางปฏิบัติที่ดีที่สุดเหล่านี้สามารถช่วยให้คุณเขียนโค้ดที่มีประสิทธิภาพและอ่านง่ายมากขึ้น
- ใช้ตัวดำเนินการ
+สำหรับการต่อสตริงแบบง่าย - ใช้เมธอด
Concat()เพื่อเชื่อมสตริงมากกว่าสองสายเข้าด้วยกัน - ใช้วิธี
Join()สำหรับการเชื่อมอาร์เรย์ของสตริงเข้าด้วยกัน - ใช้ตัวดำเนินการ '-f' สำหรับการดำเนินการต่อข้อมูลที่ซับซ้อนซึ่งเกี่ยวข้องกับตัวแปรหลายตัว
- ใช้วิธี
Replace()เพื่อแทนที่ส่วนของสตริง - ใช้ตัวแปรเพื่อจัดเก็บสตริงที่ต่อกันเพื่อนำมาใช้ซ้ำได้
- ใช้เครื่องหมายคำพูดคู่เสมอเมื่อเชื่อมตัวแปรกับสตริงเพื่อให้แน่ใจว่ามีการทดแทนที่เหมาะสม
ด้วยการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดเหล่านี้ คุณสามารถเขียนโค้ดที่มีประสิทธิภาพและอ่านง่ายมากขึ้นเมื่อเชื่อมต่อสตริงใน PowerShell
สรุป: การเรียนรู้ PowerShell Concatenate String
ในคู่มือที่ครอบคลุมนี้ เราได้ครอบคลุมทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับการต่อสตริงของ PowerShell เราได้กล่าวถึงวิธีการต่างๆ ของการต่อสตริงใน PowerShell รวมถึงการใช้ตัวดำเนินการ วิธีการ และตัวแปร นอกจากนี้เรายังครอบคลุมแนวทางปฏิบัติที่ดีที่สุดในการเชื่อมสตริงใน PowerShell และจัดเตรียมตัวอย่างวิธีการเชื่อมสตริงในสถานการณ์ต่างๆ สุดท้าย เราได้ดูความแตกต่างระหว่าง PowerShell ต่อสตริงและ Join-Path
ด้วยการเรียนรู้สตริงที่ต่อกันของ PowerShell คุณจะมีประสิทธิภาพมากขึ้นในงานเขียนสคริปต์ PowerShell และงานอัตโนมัติ อย่าลืมปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดและเลือกวิธีการที่เหมาะสมสำหรับการต่อสตริงตามความต้องการเฉพาะของคุณ ด้วยเคล็ดลับและเทคนิคเหล่านี้ คุณจะสามารถเขียนโค้ด PowerShell ที่มีประสิทธิภาพและอ่านง่ายซึ่งจัดการสตริงได้อย่างง่ายดาย
คำถามที่พบบ่อย:
ฉันจะเพิ่มสตริงต่อท้ายในสคริปต์ PowerShell ได้อย่างไร
หากต้องการเพิ่มสตริงต่อท้ายใน PowerShell คุณสามารถใช้ตัวดำเนินการ “+” หรือตัวดำเนินการ “+=” นี่คือตัวอย่าง:
$string = "Hello"
$string += " World"
Write-Output $stringคุณจะเชื่อมโยงตัวแปรและสตริงเข้าด้วยกันได้อย่างไร
มีหลายวิธีในการเชื่อมโยงตัวแปรและสตริงใน PowerShell เช่น ใส่ตัวแปรด้วยเครื่องหมายคำพูดคู่:
$variable = "World"
$string = "Hello $variable"
Write-Output $string
If the variable is not a string, you have to convert it to a string using “.ToString()” method!

