2012-03-03 13 views
9

Tôi biết rằng người ta có thể làmCó cách nào để tự động lưu lịch sử lệnh vào một tệp trong cmd.exe, tương tự như bash_history của bash không?

doskey /history 

để lưu lịch sử lệnh tại một điểm cụ thể trong thời gian, nhưng tôi tự hỏi, nếu có một cách để chủ động lưu lịch sử lệnh vào một tập tin, như các lệnh được ban hành .

Khi dấu nhắc lệnh được đóng, lịch sử bị mất, vì vậy thật dễ dàng vô tình đóng dấu nhắc lệnh khi đã hoàn tất.

Tôi muốn để có thể nói điều gì đó như:

log Commands.log 

và sau đó ra lệnh của tôi, và có các lệnh được lưu vào Commands.log.

Trả lời

6

Bạn có thể tạo một macro doskey để remap lệnh EXIT, như sau:

doskey exit=doskey/history$g$gc:\temp\commands.log$texit $1 $2 

này sẽ nối thêm các nội dung về lịch sử lệnh của bạn vào một tập tin có tên là "c: \ temp \ commands.log" mỗi thời gian bạn thoát khỏi lời nhắc bằng cách nhập "thoát".

LƯU Ý: tôi đã không kiểm tra tác dụng phụ tiềm năng của việc sử dụng này với các thông số EXIT của "/ B exit code", nhưng không nên có bất kỳ kể từ khi bạn nắm bắt được các thông số với "$ 1 $ 2" anyway.

Điều này không thực hiện chính xác những gì bạn đang tìm kiếm, nhưng nó nắm bắt lịch sử lệnh của bạn miễn là bạn thoát bằng EXIT (so với chỉ đóng cửa sổ). Thông tin

Ngày càng có mẫu trên macro DOSKEY đang ở đây: http://technet.microsoft.com/en-us/library/bb490894.aspx

+0

Lệnh hoạt động tốt, nhưng bạn cần phải chỉ định một thư mục đã tồn tại - nó sẽ không tạo ra các thư mục cho bạn. Từ những gì tôi có thể nói là macro này chỉ kéo dài trong phiên dos hiện tại. Vì vậy, bạn phải gõ này mỗi khi bạn mở dấu nhắc lệnh. – icc97

+1

Nếu bạn tạo lối tắt với Mục tiêu sau: '% windir% \ system32 \ cmd.exe/K doskey thoát = doskey/history $ g $ g% USERPROFILE% \ commands.log $ texit $ 1 $ 2' này a) theo sau khái niệm về lưu nó vào thư mục chính của bạn, b) lệnh này được chạy khi bạn chạy đoạn cắt ngắn này để bạn không phải gõ nó mỗi lần – icc97

Các vấn đề liên quan