PowerShell เลื่อนขึ้นลงไม่ได้ใช่ไหม? แก้ไขปัญหาการเลื่อนย้อนกลับ (Scrollback)

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

ขั้นแรก ให้ระบุว่าส่วนใดที่ไม่สามารถเลื่อนได้

PowerShell ส่งเอาต์พุตไปยังโฮสต์ เช่น Console Host แบบคลาสสิก, Windows Terminal, เทอร์มินัลในตัวของ Visual Studio Code หรือ PowerShell ISE โฮสต์จะควบคุมจำนวนแถวเอาต์พุตที่จะยังคงแสดงอยู่เหนือหน้าจอ หากคำสั่งพิมพ์บรรทัดน้อยกว่าจำนวนบรรทัดที่พอดีกับหน้าต่าง จะไม่มีอะไรให้เลื่อนดู

ทดสอบด้วยคำสั่งที่ไม่เป็นอันตรายซึ่งจะพิมพ์ข้อความออกมา 100 บรรทัด:

1..100 | ForEach-Object { "Line $_" }

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

แก้ไขปัญหาคอนโซล PowerShell แบบคลาสสิกของ Windows

ใช้ขั้นตอนเหล่านี้สำหรับหน้าต่าง Windows PowerShell ที่เปิดแยกต่างหาก แทนที่จะใช้แท็บ PowerShell ภายใน Windows Terminal:

  1. เปิด Windows PowerShell แล้วเรียกใช้คำสั่งทดสอบด้านบน
  2. คลิกขวาที่แถบชื่อเรื่องของหน้าต่าง แล้วเลือกคุณสมบัติ (Properties )
  3. เปิด แท็บ เค้าโครงแล้วค้นหาขนาดบัฟเฟอร์หน้าจอ
  4. เพิ่มความสูงตัวอย่างเช่น ลองเพิ่มเป็น3000แถว จากนั้นเลือกตกลง
  5. เรียกใช้การทดสอบอีกครั้งแล้วเลื่อนขึ้นไปดูผลลัพธ์
หน้าต่าง Properties ของ Windows PowerShell แบบคลาสสิก บนแท็บ Layout โดยตั้งค่า Screen Buffer Size Height เป็น 3000 แถว
การตั้งค่าความสูงของคอนโซลแบบคลาสสิกจะควบคุมจำนวนแถวที่เหลืออยู่เหนือหน้าต่างที่มองเห็นได้

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

เพิ่มระยะการเลื่อนใน Windows Terminal

ถ้า PowerShell กำลังทำงานอยู่ใน Windows Terminal การตั้งค่าในหน้าต่าง Properties ของคอนโซลแบบคลาสสิกจะไม่ใช่สิ่งที่คุณต้องการ เพราะ Terminal จะเก็บการเลื่อนดูย้อนหลังของตัวเองสำหรับแต่ละโปรไฟล์:

  1. เปิดการตั้งค่าเทอร์มิ นัลของ Windows
  2. เลือกโปรไฟล์ที่คุณใช้งานจริง เช่นWindows PowerShellจากนั้นเปิดการตั้งค่าขั้นสูง
  3. เพิ่มขนาดประวัติการใช้งานและบันทึกการตั้งค่า ลองตั้งค่าเป็น 20,000บรรทัด เอกสารของ Microsoft ระบุค่าเริ่มต้นไว้ที่9,001 บรรทัดและค่าสูงสุดที่32,767บรรทัด
การตั้งค่าขั้นสูงของ Windows Terminal สำหรับโปรไฟล์ Windows PowerShell โดยตั้งค่าขนาดประวัติไว้ที่ 20,000 บรรทัด
ขนาดประวัติการใช้งานเทอร์มินัลจะกำหนดจำนวนบรรทัดที่จะแสดงอยู่เหนือมุมมองปัจจุบัน

ค่านี้ควบคุมจำนวนบรรทัดที่ Terminal จะแสดงอยู่เหนือมุมมองปัจจุบัน ค่านี้เป็นของโปรไฟล์ที่เลือก ดังนั้นหากคุณสลับระหว่าง Windows PowerShell และ PowerShell 7 ให้เปลี่ยนโปรไฟล์อื่นด้วย ดูรายละเอียดคุณสมบัติปัจจุบันได้ที่การตั้งค่าโปรไฟล์ขั้นสูงของ Windows Terminal จาก Microsoft

อ่านข้อมูลยาวๆ ทีละหน้า

การแบ่งหน้ามีประโยชน์เมื่อคำสั่งส่งคืนผลลัพธ์จำนวนมาก และคุณต้องการอ่านผลลัพธ์เหล่านั้นตามลำดับที่ปรากฏ การแบ่งหน้าจะไม่เปลี่ยนแปลงขีดจำกัดการเลื่อนย้อนหลังOut-Host -Pagingตัวอย่างเช่น ให้ส่งคำสั่งไปยังฟังก์ชันอื่น:

Get-Process | Out-Host -Paging
PowerShell แสดงผลลัพธ์จากคำสั่ง Get-Process ผ่านทาง Out-Host -Paging โดยใช้ปุ่ม Space, Enter และ Q เป็นตัวควบคุม
ปุ่ม Spacebar ใช้สำหรับเลื่อนไปหนึ่งหน้า ปุ่ม Enter ใช้สำหรับเลื่อนไปหนึ่งบรรทัด และปุ่ม Q ใช้สำหรับออกจากหน้าต่างการแบ่งหน้า

กดSpacebarเพื่อไปยังหน้าถัดไปกด Enterเพื่อไปยังบรรทัดถัดไป หรือ กด Qเพื่อหยุดการเปลี่ยนหน้า-Pagingพารามิเตอร์นี้ไม่ได้รับการสนับสนุนโดยโฮสต์ PowerShell ISE เอกสารของ Microsoft เกี่ยวกับพฤติกรรมและปุ่มต่างๆ อยู่ในเอกสารอ้างอิง Windows PowerShell 5.1 Out- Host

บันทึกผลลัพธ์ลงในไฟล์ถอดเสียง

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

Start-Transcript
ตัวอย่างข้อความธรรมดาจากบันทึกการทำงานของ PowerShell ที่แสดงผลลัพธ์จากคำสั่ง Start-Transcript, Get-Process และ Stop-Transcript
โปรแกรมจะบันทึกคำสั่งและผลลัพธ์จากคอนโซลจนกว่าจะมีการเรียกใช้คำสั่ง Stop-Transcript

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

Stop-Transcript

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

อย่าสับสนระหว่างการเลื่อนดูย้อนหลังกับประวัติคำสั่ง

การเปลี่ยน$MaximumHistoryCountค่านี้ไม่ได้ทำให้เอาต์พุตของ PowerShell เลื่อนไปไกลขึ้น ตัวแปรการตั้งค่านี้จำกัดจำนวนคำสั่งที่ประวัติการใช้งานในตัวเก็บไว้สำหรับการเรียกใช้ด้วยเครื่องมือประวัติการใช้งานเท่านั้น ไม่นับรวมบรรทัดเอาต์พุตที่แสดงในเทอร์มินัล PowerShell ยังมีประวัติการใช้งานแยกต่างหากที่จัดการโดย PSReadLine เอกสารอ้างอิง about_History ของ Microsoft อธิบายความแตกต่างนี้ไว้

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

ฝากความเห็น

วิธีการตรวจสอบสถานะฮาร์ดไดรฟ์ใน Windows Server

วิธีการตรวจสอบสถานะฮาร์ดไดรฟ์ใน Windows Server

ตรวจสอบสถานะดิสก์และตัวนับความน่าเชื่อถือของ Windows Server ตรวจสอบข้อมูล SMART เมื่อมีให้ใช้งาน และแยกคำเตือนเกี่ยวกับฮาร์ดแวร์ออกจากข้อผิดพลาดของ NTFS

วิธีการเพิ่มและลบผู้ใช้ใน Windows Server

วิธีการเพิ่มและลบผู้ใช้ใน Windows Server

สร้าง มอบสิทธิ์ผู้ดูแลระบบ ปิดใช้งาน หรือลบผู้ใช้ Windows Server ในเครื่องโดยใช้ Computer Management หรือ PowerShell เรียนรู้ว่าเมื่อใดควรใช้ Active Directory แทน

ติดตั้ง Serviio Media Server บน Windows Server

ติดตั้ง Serviio Media Server บน Windows Server

ติดตั้ง Serviio บน Windows Server แชร์โฟลเดอร์สื่อในเครื่องหรือ NAS และทดสอบการเล่น DLNA เรียนรู้วิธีตรวจสอบบริการ Windows ไฟร์วอลล์ และคุณสมบัติเบราว์เซอร์เฉพาะเวอร์ชัน Pro

วิธีแปลงภาพ PNG, JPG หรือ BMP เป็นไฟล์ ICO ใน Windows

วิธีแปลงภาพ PNG, JPG หรือ BMP เป็นไฟล์ ICO ใน Windows

แปลงไฟล์ PNG, JPG หรือ BMP เป็นไฟล์ ICO สำหรับ Windows ด้วย GIMP เตรียมภาพให้เป็นสี่เหลี่ยมจัตุรัส รักษาความโปร่งใสเมื่อจำเป็น เพิ่มขนาดมาตรฐาน และตรวจสอบการส่งออก

วิธีล้างแคชใน Windows 8: คู่มือทีละขั้นตอน

วิธีล้างแคชใน Windows 8: คู่มือทีละขั้นตอน

ล้างข้อมูลภาพขนาดย่อ, DNS, Internet Explorer, Microsoft Store, การค้นหา และ Live Tile ด้วยเครื่องมือในตัวของ Windows 8 และเรียนรู้ว่าการล้างข้อมูลแต่ละครั้งจะลบอะไรบ้าง

วิธีลบช่องทำเครื่องหมายรายการใน File Explorer ของ Windows 10

วิธีลบช่องทำเครื่องหมายรายการใน File Explorer ของ Windows 10

ปิดการใช้งานช่องทำเครื่องหมายรายการใน File Explorer ของ Windows 10 โดยใช้แถบเมนู View หรือใช้ Folder Options หากไม่มีตัวเลือกนี้ ดูว่ามีการเปลี่ยนแปลงอะไรบ้างและวิธีการเลือกไฟล์หลายไฟล์โดยไม่ต้องใช้ช่องทำเครื่องหมาย

ติดตั้ง VMware Workstation Pro บน Windows Server

ติดตั้ง VMware Workstation Pro บน Windows Server

ติดตั้ง VMware Workstation Pro บนโฮสต์ Windows Server ที่เข้ากันได้ ตั้งแต่การตรวจสอบการรองรับและการดาวน์โหลดเวอร์ชันที่ถูกต้อง ไปจนถึงการสร้าง VM เครื่องแรกของคุณ

วิธีอ่านพาร์ติชั่น Linux บน Windows โดยไม่ต้องฟอร์แมตพาร์ติชั่น

วิธีอ่านพาร์ติชั่น Linux บน Windows โดยไม่ต้องฟอร์แมตพาร์ติชั่น

เรียกดูและคัดลอกไฟล์ Ext2, Ext3 หรือ Ext4 บน Windows ด้วยเวิร์กโฟลว์แบบอ่านอย่างเดียว ดูว่าเวอร์ชันฟรีของ Linux Reader รองรับอะไรบ้าง และเมื่อใดที่ WSL เหมาะสม

วิธีใช้งาน Caddy เป็นเว็บเซิร์ฟเวอร์บน Windows Server

วิธีใช้งาน Caddy เป็นเว็บเซิร์ฟเวอร์บน Windows Server

ติดตั้งโปรแกรม Caddy เวอร์ชันสำหรับ Windows, สร้างเว็บไซต์ทดสอบ, เปิดใช้งาน HTTPS อัตโนมัติสำหรับโดเมน และเรียกใช้ Caddy ในฐานะบริการของ Windows Server

วิธีการตั้งค่า Jellyfin Server บน Windows Server

วิธีการตั้งค่า Jellyfin Server บน Windows Server

ติดตั้ง Jellyfin เป็นบริการของ Windows กำหนดสิทธิ์การเข้าถึงสื่อของคุณอย่างจำกัด เสร็จสิ้นการตั้งค่า และเชื่อมต่อไคลเอนต์บนเครือข่าย LAN ของคุณ หรือผ่านการเชื่อมต่อระยะไกลที่ปลอดภัยกว่า