Câu trả lời:
Làm cho nó hoạt động nhờ macro doskey của gravvity. Anh ta đã sử dụng && để kết hợp các lệnh cd và title hoạt động hoàn hảo. Tôi thậm chí đã thực hiện tải macro này mỗi khi tôi sử dụng cmd bằng cách điều chỉnh registry.
1) Tôi đã tạo một tập tin bat có tên cmd_title.bat và nội dung của nó là
@echo off
title %cd%
2) Tôi đã đặt tệp này vào ổ C: (C: \ cmd_title.bat)
3) Tạo một tệp bó khác có tên cmd.bat trong ổ C: với nội dung sau
doskey cd = cd /d $* ^&^& "C:\cmd_title.bat"
title %cd%
(cờ / d là để sử dụng cd để chuyển sang ổ đĩa khác).
4) Sau đó, chúng tôi mở regedit và truy cập HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor . Ở đây có một khóa gọi là AutoRun . Chúng tôi sửa đổi giá trị của khóa này và đặt nó vào vị trí của tệp cmd.bat trong dấu ngoặc kép (ví dụ: "C: \ cmd.bat").
Bây giờ cd hoạt động như chúng ta muốn mỗi khi chúng ta mở cmd.
Về cơ bản && được sử dụng cho chuỗi lệnh trong Windows
doskey cd=@echo off$Tcd /d $*$T@title ^%cd^%$Techo on
@echo off
không cần thiết nếu bạn chỉ cần thêm @
vào trước các lệnh bạn không muốn lặp lại. Tôi cũng thấy lệnh này hữu ích hơn khi đặt tiêu đề thành chỉ tên thư mục hiện tại thay vì đường dẫn đầy đủ@for %%* in (.) do @title %%~nx*
Tôi nghĩ rằng Pushd và popd hữu ích hơn nhiều so với cd và sẽ được sử dụng nhiều hơn nếu họ gõ nhanh hơn. Tôi đã giải quyết các vấn đề của cd so với Pushd / popd và tiêu đề thư mục cửa sổ giao diện điều khiển với tập lệnh sau, mà tôi gọi là d.bat, nằm trong đường dẫn của tôi.
@ echo off
rem d.bat replaces CD, PUSHD, and POPD with one command that also changes the title
rem of the console window to tell the current directory. Invoked with no arg, the
rem title is updated. Use this after changing the directory by some other means.
rem The argument / invokes popd. Any other argument invokes pushd with that arg.
if not _%1 == _ (
if _%1 == _/ (
popd
) else (
pushd %*
)
)
title %CD%
Bạn có thể thay đổi tiêu đề của Dấu nhắc lệnh bằng cách sử dụng title
lệnh.
Bạn có thể tạo một tệp bó (giả sử mycd.bat) có chứa:
title "%1"
cd "%1"
và sử dụng nó thay vì "cd":
mycd "newdir"
Bạn cũng có thể đặt tệp .bat trong system32 nếu bạn muốn nó luôn có sẵn.
doskey cd=cd $* ^&^& title $*
Bạn không thể, ít nhất là không với vỏ Windows.
Có thể thêm các chuỗi thoát "set Xterm title" vào %PROMPT%
, nhưng bạn sẽ cần một trình giả lập thiết bị đầu cuối khác (có lẽ là PuTTYcyg hoặc một cái gì đó từ SfU), vì Windows Console không hỗ trợ các chuỗi thoát.
Ngoài ra, tìm một shell khác có thể sử dụng các chức năng của bảng điều khiển Windows để đặt tiêu đề.
Chúng thường bị nhầm lẫn trong bối cảnh Windows, vì vậy ...
shell đọc và giải thích đầu vào; cmd.exe
, command.com
,/bin/sh
thiết bị đầu cuối , trình giả lập thiết bị đầu cuối , bảng điều khiển hiển thị các chương trình dựa trên văn bản (bao gồm cả vỏ) trên màn hình của bạn; Windows Console
, xterm
,PuTTYcyg
explorer
là một vỏ GUI, cmd.exe
là một vỏ dựa trên văn bản. (Hãy suy nghĩ về nó: cmd.exe
là tương đương chính xác của /bin/sh
trong Unix, và /bin/sh
luôn được gọi là "vỏ" Tương tự như vậy, Windows Console là tương đương với một "mô phỏng thiết bị" trong X11..)
Giả sử \ tools nằm trong đường dẫn và đó là nơi bạn giữ các tệp bó của mình:
copy con: \tools\titlecmd.txt
title ^Z
copy con: \tools\cdtitle.bat
cd>\tools\cd.txt
copy \tools\titlecmd.txt+\tools\cd.txt cdtitletmp.bat
call cdtitletmp
^Z
Bây giờ bạn có một cdtitle.bat
cái mà bạn có thể gọi từ một tệp bó khác.
Tạo một tệp: cd.bat và đặt các mục sau vào đó:
cd %*
title %CD%
Sau đó ban hành lệnh này:
doskey cd=...\cd.bat $*
Thay thế "..." bằng đường dẫn đến cd.bat. Hãy thử nó và thấy rằng nó hoạt động.
Để tạo ra is-ish vĩnh viễn đó, hãy tạo dosrc.cmd, đặt lệnh doskey đó vào đó, rồi tạo một phím tắt cmd, nhấp chuột phải vào nó và chọn thuộc tính.
Sửa đổi mục tiêu thành:
%windir%\system32\cmd.exe /K ...\dosrc.cmd
Một lần nữa, thay thế "..." bằng đường dẫn đến dosrc.cmd
Sau đó nhấp đúp chuột vào phím tắt, bạn sẽ có chức năng cd.
pushd
với một trong các macro?