Perbarui - versi yang lebih baik 18 Juli 2019.
Ringkasan terakhir, walaupun saya sudah beralih ke PowerShell untuk sebagian besar pekerjaan konsol windows, tapi saya memutuskan untuk menyelesaikan masalah cmd lama ini, saya harus menggunakan konsol cmd hari ini, dan kurangnya fitur ini sangat mengejutkan saya. Yang ini akhirnya bekerja dengan spasi juga, di mana jawaban saya sebelumnya akan gagal.
Selain itu, yang ini sekarang juga dapat menggunakan ~ sebagai awalan untuk sub-folder rumah lainnya juga, dan swap-forward-slash ke back-slash juga. Jadi begini;
Langkah 1. Buat makro doskey ini , di mana mereka diambil setiap kali cmd dimulai.
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
Langkah 2. Buat file cdtilde.bat dan letakkan di suatu tempat di PATH Anda
@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%"
Diuji dengan baik;
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")
Oh, juga memungkinkan mengutip malas, yang saya temukan berguna, bahkan ketika spasi di nama path folder, karena membungkus semua argumen seolah-olah itu adalah satu string panjang. Yang berarti hanya kutipan awal juga berfungsi, atau sepenuhnya tanpa penawaran juga berfungsi.
Semua hal lain di bawah ini dapat diabaikan sekarang, dibiarkan karena alasan historis - jadi saya tidak membuat kesalahan yang sama lagi
pembaruan lama 19 Oktober 2018.
Jika ada orang lain yang mencoba pendekatan saya, jawaban asli saya di bawah tidak menangani spasi, misalnya, gagal berikut ini.
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
Saya pikir pasti ada cara untuk menyelesaikannya. Akan memposting lagi jika saya dapat meningkatkan jawaban saya. (lihat di atas, saya akhirnya berhasil dengan cara yang saya inginkan.)
Jawaban Asli saya, masih membutuhkan pekerjaan ... 7 Oktober 2018.
Saya hanya berusaha melakukannya hari ini, dan saya pikir saya mengerti, inilah yang menurut saya berfungsi dengan baik;
Pertama, beberapa makro doskey ;
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
dan kemudian file bat di jalur saya;
cdtilde.bat
@echo off
if ["%1"]==["~"] (
chdir /D "%USERPROFILE%"
) else (
chdir /D %*
)
Semua ini tampaknya berfungsi dengan baik;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)