ใน Powershell มีวิธีบันทึกคำสั่งที่พิมพ์ลงในประวัติโดยไม่ต้องดำเนินการเพื่อดำเนินการในภายหลังหรือไม่?


4

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

ตัวอย่างเช่นคุณเริ่มพิมพ์คำสั่ง git ภายใน posh-git: directory:

git commit -m "Added the library 'ASDF' and did some initial integration into the project" [pause]

และเมื่อคุณพิมพ์มันฉันคิดว่า ... เอ่อฉันต้องทำอะไรบางอย่างก่อนเช่นเพิ่มไฟล์เพิ่มเติมเพื่อกระทำสิ่งอื่นก่อนหรือสร้างสารบบหรืออะไรบางอย่าง (สถานการณ์ที่วางแผนไว้ สร้างมันขึ้นมาโดยอัตโนมัติและฉันรู้ว่า git สามารถ "แก้ไขการกระทำ" ได้) ดังนั้นฉันต้องการบันทึกการส่งข้อความนั้นลงในบัฟเฟอร์ประวัติ เมื่อก่อน

ตามบทความนี้คีย์ลัดของ Windows PowerShell: http://technet.microsoft.com/en-us/library/ee176868.aspxดูเหมือนจะไม่มีการกดแป้นพิมพ์เพื่อทำสิ่งนี้

ปุ่ม ESC (และ Ctrl + C) จะยกเลิกคำสั่งและล้างออก ... สิ่งที่ฉันต้องการคือบันทึกลงในประวัติเพื่อให้เรียกใช้ในภายหลังเพื่อรักษาการพิมพ์ของฉันเอาไว้ มีการกดแป้นสำหรับสิ่งนี้หรือไม่?

คำตอบ:


10

คุณสามารถใส่ป้ายความคิดเห็นไว้ข้างหน้าคำสั่งเช่นนี้ได้เสมอ:

#Get-ChildItem

และเมื่อคุณพร้อมที่จะดำเนินการลูกศรขึ้นอยู่กับคำสั่งตีHomeแล้วDelแล้วEnterที่จะดำเนินการ


มันค่อนข้างฉลาด ขอบคุณสำหรับคำแนะนำ!
enorl76

อ๋อ รับการใช้เคล็ดลับนี้ตลอดไป ฉันยังแสดงความคิดเห็น oneliners ของฉันด้วยวิธีนี้เพราะฉันจริงอาจอ่านประวัติศาสตร์ปีจากนี้ (ทุบตี)
bgStack15

1

คำสั่งจำนวนมากสนับสนุน-whatifพารามิเตอร์ที่คุณสามารถผนวกและลบในภายหลัง อย่างไรก็ตามฉันต้องบอกว่าฉันชอบความคิดเห็นที่ดีกว่า


whatif เป็นสิ่งที่ดี แต่ไม่ใช่คำสั่งทั้งหมดที่สนับสนุน
Keltari

1

ดูเหมือนว่าจะใช้งานได้เช่นกันหลังจากเล่นด้วยการเรียกใช้:

$VariableName = "Windows Command"

จากนั้นเพื่อดำเนินการ:

Invoke-Expression "$VariableName"

ตัวอย่างที่มี Ping:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันยังสามารถใช้นิพจน์ PowerShell ด้วยวิธีเดียวกันได้:

PS H:> $ Outlooks = "รับกระบวนการ - ชื่อ Outlook - verbose | fl StartTime, Threads" PS H:> เรียกใช้-Expression "$ Outlooks"

โดยพื้นฐานแล้วฉันเชื่อว่าสิ่งที่เกิดขึ้นคือเรากำลังสร้างสตริงสำหรับตัวแปรแรก (ตรงกับสิ่งที่มันดูเหมือนตรงไปข้างหน้า) แล้วเมื่อเราเรียกใช้ตัวแปรของเราภายใน "" มันบังคับให้ล่ามขยายตัวแปรทำให้มันเกิดขึ้น เพื่อเรียกคำสั่งที่ถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.