Cập nhật - phiên bản tốt hơn ngày 18 tháng 7 năm 2019.
Tóm tắt cuối cùng, mặc dù tôi đã chuyển sang powershell cho hầu hết các giao diện điều khiển windows, nhưng tôi đã quyết định xử lý vấn đề cmd cũ này, tôi đã phải sử dụng giao diện điều khiển cmd ngày hôm nay và việc thiếu tính năng này thực sự gây ấn tượng với tôi. Điều này cuối cùng cũng hoạt động với không gian, nơi câu trả lời trước của tôi sẽ thất bại.
Ngoài ra, cái này bây giờ cũng có thể sử dụng ~ làm tiền tố cho các thư mục con khác trong nhà, và nó cũng hoán đổi các dấu gạch chéo về phía trước để gạch chéo ngược. Vì vậy, đây là;
Bước 1. Tạo các macro doskey này , ở đâu đó chúng sẽ được nhận mỗi khi cmd khởi động.
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
Bước 2. Tạo tệp cdtilde.bat và đặt nó ở đâu đó trong PATH của bạn
@echo off
set dirname=""
set dirname=%*
set orig_dirname=%*
:: remove quotes - will re-attach later.
set dirname=%dirname:\"=%
set dirname=%dirname:/"=%
set dirname=%dirname:"=%
:: restore dirnames that contained only "/"
if "%dirname%"=="" set dirname=%orig_dirname:"=%
:: strip trailing slash, if longer than 3
if defined dirname if NOT "%dirname:~3%"=="" (
if "%dirname:~-1%"=="\" set dirname="%dirname:~0,-1%"
if "%dirname:~-1%"=="/" set dirname="%dirname:~0,-1%"
)
set dirname=%dirname:"=%
:: if starts with ~, then replace ~ with userprofile path
if %dirname:~0,1%==~ (
set dirname="%USERPROFILE%%dirname:~1%"
)
set dirname=%dirname:"=%
:: replace forward-slashes with back-slashes
set dirname="%dirname:/=\%"
set dirname=%dirname:"=%
chdir /D "%dirname%"
Đã kiểm tra tốt với;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)
cd / (eg, root of C:)
cd ~/.config (eg, the .config folder under my home folder)
cd /Program Files (eg, "C:\Program Files")
cd C:/Program Files (eg, "C:\Program Files")
cd \Program Files (eg, "C:\Program Files")
cd C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files" (eg, "C:\Program Files")
Ồ, nó cũng cho phép trích dẫn lười biếng, điều mà tôi thấy hữu ích, ngay cả khi khoảng trắng nằm trong tên đường dẫn thư mục, vì nó bao bọc tất cả các đối số như thể nó là một chuỗi dài. Có nghĩa là chỉ một trích dẫn ban đầu cũng hoạt động, hoặc hoàn toàn không có trích dẫn cũng hoạt động.
Tất cả những thứ khác dưới đây có thể bị bỏ qua ngay bây giờ, nó bị bỏ lại vì lý do lịch sử - vì vậy tôi không mắc lại sai lầm tương tự
cập nhật cũ ngày 19 tháng 10 năm 2018.
Trong trường hợp bất kỳ ai khác thử cách tiếp cận của tôi, câu trả lời ban đầu của tôi dưới đây không xử lý các khoảng trắng, ví dụ: sau đây không thành công.
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
Tôi nghĩ rằng phải có một cách để giải quyết điều đó. Sẽ đăng lại nếu tôi có thể cải thiện câu trả lời của tôi. (xem ở trên, cuối cùng tôi đã làm cho tất cả hoạt động theo cách tôi muốn.)
Câu trả lời ban đầu của tôi, vẫn cần công việc ... ngày 7 tháng 10 năm 2018.
Tôi chỉ cố gắng thực hiện ngày hôm nay và tôi nghĩ rằng tôi đã nhận được nó, đây là điều tôi nghĩ hoạt động tốt;
Đầu tiên, một số macro doskey ;
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
và sau đó một tập tin bat trong đường dẫn của tôi;
cdtilde.bat
@echo off
if ["%1"]==["~"] (
chdir /D "%USERPROFILE%"
) else (
chdir /D %*
)
Tất cả những thứ này dường như hoạt động tốt;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)