Jawaban:
Simpan yang berikut ke mis. mycd.bat
di suatu tempat di jalur Anda:
@echo off
if '%*'=='' cd & exit /b
if '%*'=='-' (
cd /d %OLDPWD%
set OLDPWD=%cd%
) else (
cd /d %*
if not errorlevel 1 set OLDPWD=%cd%
)
Maka selalu ingat untuk menggunakan mycd
alih-alih cd
mengubah direktori dan drive.
Atau, gunakan doskey
makro:
C:\>doskey cd=mycd $*
Satu-satunya peringatan adalah jika Anda menghilangkan ruang antara cd
dan ..
atau \
, Anda akan mendapatkan versi builtin cd
bukan doskey
makro ... dan Anda masih harus ingat untuk tidak menggunakan C:
, D:
dll untuk mengubah drive.
Anda dapat menggunakan pushd dan popd:
C: \ WINDOWS> pushd \ C: \> popd C: \ WINDOWS>
pushd/popd
Anda harus mempertimbangkan kemungkinan kesalahan . Dalam naskah saat Andapushd
direktori yang tidak ada itu tidak akan selesai di tumpukan, tetapi ketika popd
Anda akan keluar dari satu tingkat: variabel tidak diisi dengan benar, salah cetak, drive salah ... Anda berpikir berada di direktori yang berbeda dari yang mana Anda berada, dengan masalah serius misalnya ketika Anda menghapus file / dir. Bencana (sintaks Linux): cd $HOME; mkdir A; pushd A; mkdir B; pushd D; do stuff (in A, you believe in B); popd; rm -rf *
Anda percaya pada A tetapi ... terlambat, semua direktori home Anda hilang.
Jika Anda menginginkan perilaku bash yang tepat, mengapa tidak menggunakan bash? Saya telah menginstal cygwin dan itu sangat bagus. Itu tidak membuat Anda tetap berpegang pada alat UNIX - itu akan dengan senang hati menyebut semua jendela yang dapat dieksekusi. Untuk cmd.exe
builtin Anda dapat membuat alias:
hugh@comp07 ~/testdir
$ alias cm='cmd /c'
hugh@comp07 ~/testdir
$ cm dir
Volume in drive C has no label.
Volume Serial Number is AC2A-8378
Directory of C:\cygwin\home\hugh\testdir
18/05/2010 02:02 PM <DIR> .
18/05/2010 02:02 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 1,365,155,840 bytes free
hugh@comp07 ~/testdir
$
Ada cmd
klon freeware dengan fitur tambahan termasuk cd -
disebut Take Command Console LE .
Bergantung apa tujuan Anda, Anda bisa memulai sesi cmd baru dengan melakukan 'cmd', memindahkan direktori dan melakukan apa pun yang Anda inginkan, ketika Anda kemudian melakukan 'keluar' untuk meninggalkan sesi Anda akan kembali ke direktori Anda ketika Anda memulai sesi baru.
Jawaban yang diterima sangat bagus untuk persyaratan. Sementara saya sering harus beralih di antara banyak direktori, bukan hanya dua (saat ini dan sebelumnya).
Jadi saya baru-baru ini membuat batch untuk membuat pekerjaan sehari-hari saya lebih mudah. https://gist.github.com/programus/2d2738b2a746140186f7738b678bdcec
cdx :
. Terima kasih! Itu harus menjadi jawaban yang dipilih secara top.