Giữ lịch sử lệnh cmd.exe giữa các phiên?


Câu trả lời:


22

Chuyển sang sử dụng PowerShell và làm theo các hướng dẫn tại trang web sau để bật lịch sử:

http://bloss.msdn.com/b/powershell/archive/2006/07/01/perserving-command-history-across-simes.aspx

Ngoài ra, trong cmd.exe, bạn có thể sử dụng "doskey / history" vào cuối phiên để hiển thị nội dung bạn đã nhập trong phiên đó, nhưng không có cách nào để thực sự tải nó vào phiên tiếp theo.


6
Tôi đã chuyển sang +1 này vì "Chuyển sang sử dụng PowerShell" không nhất thiết phải dễ dàng như âm thanh tùy thuộc vào loại nội dung bạn đang sử dụng bảng điều khiển, nhưng thông tin chính xác là soooooooooo;)
Shinrai

2
Đã đồng ý. Tôi ngần ngại đặt nó xuống nhưng đó là câu trả lời thực sự duy nhất tôi có thể tìm thấy. Tôi đã cố gắng để có được một cái gì đó tương tự trên một máy trạm mà tôi có trước đây, nhưng không có cơ chế lịch sử liên tục có sẵn cho cmd.exe :-(
Hyppy

Lưu ý rằng điều này sẽ giữ một danh sách các lệnh bạn đã nhập, nhưng nó không làm thay đổi danh sách các lệnh sẽ xuất hiện khi bạn nhấn phím lên trên bàn phím. Nói cách khác, nó không ảnh hưởng đến chức năng "doskey".
Đánh dấu

Cần lưu ý rằng một số lệnh hoạt động trong cmd không hoạt động giống nhau trong PowerShell, ví dụ: mvn cài đặt `-Dmaven.test.skip = true sẽ yêu cầu backtick như hiển thị trước dấu gạch ngang
Drenai

62

Tôi đã tìm thấy 2 cách, không có cách nào yêu cầu chuyển sang PowerShell.

  1. Cài đặt Clink , giúp tăng cường cmd.exelịch sử liên tục và nhiều hơn nữa. Chỉ cần cài đặt nó và sau đó mở cmdnhư bình thường.

  2. Cài đặt phiên bản miễn phí TCC / LE , là một chương trình riêng biệt, một lần nữa cung cấp phiên bản nâng cao của cmd.exe.


5
Tôi hơi e ngại với việc thay thế toàn hệ thống cmd.exenhưng đó là một câu trả lời hay và clink cũng hỗ trợ chế độ tiêm.
Lorenz Lo Sauer

4
Wow, Clink thật tuyệt vời.
Chris Weber

4
Clink là rực rỡ. Thay thế cmdvới nó, không có vấn đề, rất hài lòng với nó.
Đại tá Panic

2
Clink là tuyệt vời!
Hoàng Huỳnh

3
Đây phải là câu trả lời được chấp nhận. Bởi vì đây là những gì được hỏi bởi câu hỏi .. !! Điều này là tốt nhất thay vì sử dụng bất kỳ ứng dụng thay thế khác.
Samitha Chathuranga

12

Lưu lịch sử là một quy trình công việc nhỏ - đây là một cách ít "nặng nề" hơn để làm điều này (không có lib bên ngoài).

Tạo một tập tin bat / cmd để thiết lập lịch sử của bạn, trong trường hợp này tôi gọi nó là MyEn Môi.cmd:

doskey save=doskey /history $g$g C:\CmdHistory.log
doskey quit=doskey /history $g$g C:\CmdHistory.log $T exit
doskey history=find /I "$*" C:\CmdHistory.log
cls

Sau đó chạy cái này từ "Bắt đầu-> Chạy" (bạn cũng có thể thiết lập bí danh cho cái này nữa):

cmd.exe /K C:\MyEnvironment.cmd

Mỗi khi tôi kết thúc một phiên, tôi nhấn "thoát" - hoặc nếu tôi sợ mất lịch sử giữa phiên, tôi nhấn "lưu". Nếu tôi muốn grep cho một cái gì đó trong lịch sử, tôi chỉ cần nhấn "lịch sử KEYWORD".


Nhận xét của mỗi @ dave_thndry_085, AutoRuntính năng này hoạt động tốt nếu bạn không muốn sử dụng công /Ktắc. Nếu bạn thiết lập khóa Registry chính xác, .cmdhoặc .batkhông cần phải ở trong %AppData%đó, nó có thể ở cùng vị trí với nó.

Nếu bạn sử dụng %AppData%vị trí, hãy lưu ý rằng cmd có thể sẽ tìm tệp bó của bạn trong thư mục "Chuyển vùng" (thay vì gốc AppData).

Thông tin thêm về AutoRuntính năng CMD: https://superuser.com/a/302553/333316


Những gì $g$tđược cho?

@ Chinggis6 $gchèn a >$tlà dấu phân cách lệnh.
Superole

@Superole ah ok, g reater hơn và t ermine, nhưng tại sao không sử dụng >&&ký tự trực tiếp trong bí danh doskey?

@ Chinggis6 vì điều đó sẽ phá vỡ lệnh tạo bí danh. Sau đó, trình thông dịch lệnh sẽ cho rằng bạn có nghĩa là: trước tiên thực hiện doskey quit=doskey /historyvà lưu kết quả đầu ra của việc tạo macro trong một tệp logfile (không có gì hoặc không có lỗi); tiếp theo đóng cửa sổ (loại bỏ mọi thứ). - Tôi có thể thoát khỏi những nhân vật đó bằng một ^thay vào đó, tôi nghĩ vậy. Thích ^>^>^&(... và có, bạn chỉ cần một ký hiệu)
Superole

1
Thay vì rõ ràng /kcó thể sử dụng AutoRun superuser.com/a/302553/333316
dave_thedom_085

2

Tôi sử dụng cygwin . Nó cũng cung cấp một số chức năng khác mà Linux có nhưng Windows thì không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.