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

วิธีการเชื่อมต่อสตริงใน 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!

How do you append a string with a new line in PowerShell?

To append a string with a new line in PowerShell, you can use the escape sequence “`n”. Here’s an example:

$string = "Hello"
$string += "`nWorld"
Write-Output $string

ฉันจะเชื่อมสตริงและ int ใน PowerShell ได้อย่างไร

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