สร้าง Log ง่ายๆ ใน PowerShell ด้วย Start-Transcript


เมื่อเราสร้างโปรแกรมด้วย PowerShell แล้วต้องการจะเก็บข้อมูลการทำงานว่าโปรแกรมทำงานได้สมบูรณ์หรือมีข้อผิดพลาดตรงไหรหรือเมื่อไร เราอาจจะเขียนเป็น Function เพื่อจะบันทึกการทำงานหรือผลลัพธ์ ซึ่งใน PowerShell มีโปรแกรมหรือ Function มาตรฐานไว้สำหรับบันทึกผลลัพธ์ไว้แล้ว

Start-Transcript

นำ Function นี้ไปวางไว้บนสุดของไฟล์ หรือตรงไหนก็ได้ที่เราอยากจะให้เริ่มเก็บ Log

Parameter ที่สำคัญ

  • -Path: ระบุตำแหน่งของไฟล์ .txt ที่ใช้สำหรับบันทึก ถ้าไม่กำหนดไฟล์จะถูกบันทึกไว้ที่เดียวกับไฟล์ของสคลิป
  • -Append: ให้เขียนข้อมูลต่อจากไฟล์เดิม
  • -NoClobber: กำหนดว่าไม่ให้เขียนข้อมูลลงที่ไฟล์เดิม ถ้าพบว่ามีไฟล์ชื่อนี้อยู่แล้วจะเกิด Error ทันที

ตัวอย่าง 1: บันทึก Log ด้วยค่าตั้งต้น

Start-Transcript

ตัวอย่าง 2: บันทึก Log แบบกำหนดตำแหน่งไฟล์

Start-Transcript -Path "C:\Log\ScriptLog.txt"

ตัวอย่าง 3: บันทึก Log ต่อจากไฟล์เดิม

Start-Transcript -Path "C:\Log\ScriptLog.txt" -Append

ตัวอย่าง 4: บันทึก Log แบบไม่ทับไฟล์ชื่อเดิม

Start-Transcript -Path "C:\Log\ScriptLog.txt" -NoClobber

การใช้งานจริง

Sample for Start-Transcript

เราสามารถกำหนดข้อความที่จะให้บันทึกด้วยคำสั่ง Write-Host หรือคำสั่งอื่นๆ ที่แสดงข้อความออกมาได้ หรือจะใช้ Paremeter -Verbose ที่มีอยู่ใน Function มาตรฐานของ Powershell

Document PowerShell: https://docs.microsoft.com/en-us/powershell/
PowerShell Start-Transcript: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.host/start-transcript?view=powershell-7.1