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

วิธีเขียนหลายบรรทัดลงในไฟล์ใน PowerShell


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

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

เขียนหลายบรรทัดลงในไฟล์ใน PowerShell

ที่นี่ ฉันจะแสดง 5 วิธีในการเขียนหลายบรรทัดลงในไฟล์ใน PowerShell เราจะหารือแต่ละวิธีเป็นรายบุคคล

วิธีที่ 1: การใช้ Out-File และ Here-String

หนึ่งในวิธีที่ง่ายและง่ายที่สุดในการเขียนหลายบรรทัดลงในไฟล์ใน PowerShell คือการใช้ Out-File cmdlet ร่วมกับสตริงที่นี่ สตริงที่นี่คือสตริงที่สามารถขยายได้หลายบรรทัดและประกาศด้วย @” ที่จุดเริ่มต้นและ “@ ที่ท้าย”

ต่อไปนี้คือตัวอย่างวิธีใช้สตริงที่นี่กับ Out-File เพื่อเขียนหลายบรรทัดไปยังไฟล์ใน PowerShell

$multiLineText = @"
This is line one
This is line two
This is line three
"@

$multiLineText | Out-File -FilePath C:\MyFolder\file.txt

cmdlet Out-File ส่งออกไปยังไฟล์ โดยปริยายใช้ระบบการจัดรูปแบบของ PowerShell เพื่อเขียนลงไฟล์

คุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่างหลังจากที่ฉันรันสคริปต์ PowerShell โดยใช้โค้ด VS

วิธีที่ 2: การใช้ Add-Content

หากคุณต้องการเพิ่มหลายบรรทัดต่อท้ายไฟล์ที่มีอยู่โดยไม่ต้องเขียนทับเนื้อหาปัจจุบัน คุณสามารถใช้ Add-Content PowerShell cmdlet

นี่คือตัวอย่างและสคริปต์ PowerShell ที่สมบูรณ์

$lines = @"
Appending this line to the file.
Adding another line.
"@

Add-Content -Path C:\MyFolder\file.txt -Value $lines

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

คุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่าง:

วิธีที่ 3: การใช้ตัวดำเนินการเปลี่ยนเส้นทาง

PowerShell ยังช่วยให้คุณเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ได้โดยตรงโดยใช้ตัวดำเนินการเปลี่ยนเส้นทาง > ใน PowerShell หากต้องการต่อท้ายเนื้อหา คุณจะต้องใช้ตัวดำเนินการ >>

นี่คือตัวอย่างการใช้ตัวดำเนินการเปลี่ยนเส้นทาง PowerShell:

@"
This is a new line for the file.
Here's another new line.
"@ > C:\MyFolder\file.txt

และเพื่อผนวกข้อมูล:

@"
This line will be appended.
So will this one.
"@ >> C:\MyFolder\file.txt

ตัวดำเนินการเปลี่ยนเส้นทางนั้นรวดเร็วและง่ายดาย แต่มีการควบคุมน้อยกว่าเมื่อเทียบกับ Out-File และ Add-Content ใน PowerShell

วิธีที่ 4: การใช้ชุดเนื้อหา

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

ต่อไปนี้คือวิธีที่คุณสามารถใช้ PowerShell Set-Content:

$linesToWrite = @"
Line one
Line two
Line three
"@

Set-Content -Path C:\MyFolder\file.txt -Value $linesToWrite

Set-Content เป็นตัวเลือกที่ดีเมื่อประสิทธิภาพเป็นปัญหา และเมื่อคุณไม่ต้องการความสามารถในการจัดรูปแบบของ Out-File

วิธีที่ 5: การใช้ Script Block กับ Foreach-Object

หากคุณมีอาร์เรย์ของสตริงใน PowerShell ที่คุณต้องการเขียนลงในไฟล์ทีละบรรทัด คุณสามารถใช้บล็อกสคริปต์กับ Foreach-Object cmdlet

ตัวอย่าง :

$linesArray = "Line one", "Line two", "Line three"

$linesArray | Foreach-Object { $_ | Out-File -FilePath C:\path\to\your\file.txt -Append }

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

บทสรุป

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

วิธีที่ง่ายที่สุดในการเขียนหลายบรรทัดลงในไฟล์ใน PowerShell คือการใช้ Out-File และ Here-String cmdlets

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