ทำไมพรอมต์คำสั่งของฉันค้างใน Windows 10


146

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

ปัญหา: แอปพลิเคชันคอนโซลของฉันดูเหมือนจะหยุดทำงานแบบสุ่ม เกิดอะไรขึ้น?


2
นอกจากนี้คุณต้องกด Enter เพื่อใช้งานโปรแกรมต่อไป
2560

คำตอบ:


270

ปัญหานี้จบลงด้วยคุณสมบัติใหม่ของคอนโซล windows 10 ภายใต้การกำหนดค่าเริ่มต้นทุกครั้งที่คุณคลิกที่หน้าต่างคำสั่งใน windows 10 มันจะหยุดกระบวนการแอพพลิเคชั่นทันทีเมื่อมันพยายามที่จะเขียนไปยังคอนโซล เมื่อสิ่งนี้เกิดขึ้นหน้าต่างคำสั่งจะเข้าสู่โหมด "การเลือก"

คุณสามารถบอกได้ว่ามันเกิดขึ้นเพราะมันจะนำหน้าแถบชื่อเรื่องของหน้าต่างคำสั่งด้วยคำว่า "เลือก":

หน้าต่างคำสั่งแช่แข็ง

เพื่อให้โปรแกรมของคุณทำงานอีกครั้งคุณต้องกด Escape หรือคลิกที่อื่น

เพื่อกำจัดพฤติกรรมแปลก ๆ นี้คุณสามารถปิดการใช้งานโหมด QuickEdit:

ปิดใช้งานโหมด QuickEdit


26
พระเจ้าของฉันขอบคุณคุณ! ได้รับการจัดการกับเรื่องนี้เป็นเวลาหนึ่งปีฮ่า ๆ นอกจากนี้คุณอาจต้องยกเลิกการเลือกตัวเลือกปิดเทอร์มินัลแล้วเปิดอีกครั้ง อย่างน้อยนั่นก็เป็นวิธีการทำงานสำหรับฉัน (ไม่เช่นนั้นมันจะเปิดใช้งานอัตโนมัติอีกครั้ง)
2875289

3
ฉันมีงานรวบรวมหลายชั่วโมงที่จะหยุดเพราะเหตุนี้ ดีใจที่คุณโพสต์ทางออก!
โจเอล

2
แม้ว่าคำตอบนี้จะช่วยปิดใช้งานการหยุดเมื่อคลิก แต่การเลื่อนแถบด้านข้างก็ค้างไว้เช่นกัน พฤติกรรมก่อนหน้านี้ค้างในขณะที่แถบเลื่อนถูกระงับและพิมพ์ออกมาเมื่อคุณต้องการปล่อยแถบเลื่อน มีความคิดใดที่จะเปลี่ยนกลับไปใช้พฤติกรรมเดิมหรือยกเลิกการตรึงในแบบเดิมได้บ้าง Esc หรือ Enter ไม่ทำงาน
quimnuss

6
นี่เป็นคุณสมบัติที่เก่ามากสำหรับการคัดลอกและวางที่เร็วขึ้น เป็นเพียงว่า Windows 10 เริ่มเปิดใช้งานตามค่าเริ่มต้นวิธีการปิดการใช้งานคลิกขวาเพื่อวางใน PowerShell
phuclv

3
"ฟีเจอร์ไม่ใช่ข้อผิดพลาด" เป็นสิ่งที่
ดึงดูดความสนใจ

20

สิ่งที่ฉันต้องการเพิ่มที่นี่ในคำตอบของ Shaun Rowan คือเพื่อให้มันทำงานได้ในทุกหน้าต่างคอนโซลคุณต้องคลิก "ค่าเริ่มต้น" แทนที่จะเป็น "คุณสมบัติ" และทำการเปลี่ยนแปลงตามที่อธิบายไว้ในโพสต์นี้


0

ฉันประสบปัญหานี้เมื่อเร็ว ๆ นี้ที่หนึ่งในผู้ใช้ (ที่มี Quickedit กำหนดค่าบน Command Prompt ของเขา) กำลังใช้เครื่องมือที่ฉันพัฒนาใน Java และได้รับเครื่องมือที่ถูกแช่แข็งในขณะที่เรียกใช้จากพรอมต์คำสั่ง

ในที่สุดสิ่งที่แก้ไขปัญหาได้คือการเปลี่ยนเส้นทางการบันทึกภายในชุดสคริปต์ไปยังไฟล์ที่แสดงด้านล่าง:

@echo off
...
java.exe -jar mytool.jar

จำเป็นต้องได้รับการอัปเดตเป็น

java.exe -jar mytool.jar > log.txt


1
สำหรับนักพัฒนาเธรดนี้อาจน่าสนใจคุณสามารถปิดใช้งานลักษณะการทำงานนี้ได้โดยใช้โปรแกรมSetConsoleMode(kernel32.dll)
Groo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.