Yanıtlar:
Aşağıdakileri örn. mycd.bat
yolunuzun bir yerinde:
@echo off
if '%*'=='' cd & exit /b
if '%*'=='-' (
cd /d %OLDPWD%
set OLDPWD=%cd%
) else (
cd /d %*
if not errorlevel 1 set OLDPWD=%cd%
)
Sonra her zaman dizinleri ve sürücüleri değiştirmek mycd
yerine kullanmayı unutmayın cd
.
Alternatif olarak, bir doskey
makro kullanın :
C:\>doskey cd=mycd $*
Sadece farkı arasında boşluk çıkarırsanız olduğunu cd
ve ..
ya \
, size yerleşik sürümünü alacak cd
değil doskey
makro ... ve hala kullanımda değil hatırlamak zorunda C:
, D:
değişiklik sürücüye vb.
Pushd ve popd kullanabilirsiniz:
C: \ WINDOWS> pushd \ C: \> Popd C: \ WINDOWS>
pushd/popd
size hata olasılığını düşünceli zorunda . Bir komut dosyasında, var olmayan pushd
bir dizinde yığında popd
bitmeyecek, ancak bir seviyeden çıktığınızda : değişken doğru doldurulmamış, missprint, yanlış sürücü ... Farklı bir dizinde yer almayı düşünüyorsunuz İçinde bulunduğunuzdan, ciddi bir problemle, örneğin dosyaları / klasörleri silerken. Felaket (Linux sözdizimi): cd $HOME; mkdir A; pushd A; mkdir B; pushd D; do stuff (in A, you believe in B); popd; rm -rf *
A'ya inanıyorsunuz ama ... çok geç, tüm ev diziniz kayboldu.
Eğer bash'ın tam davranışını istiyorsanız, neden bash kullanmıyorsunuz? Ben var cygwin yüklü ve çok güzel. UNIX araçlarına bağlı kalmanızı sağlamaz - çalıştırılabilir tüm pencereleri mutlu bir şekilde çağırır. İçin cmd.exe
builtins bir takma ad oluşturabilirsiniz:
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
$
Ücretsiz var cmd
dahil olmak üzere ilave özelliklerle klon cd -
denilen Al Komut Konsolu LE .
Amacınızın ne olduğuna bağlı olarak, sadece 'cmd' yaparak yeni bir cmd oturumu başlatabilir, dizini hareket ettirebilir ve ne istersen yapabilirsin, daha sonra oturumu terk etmek için 'çıkış' yaptığında, istediğin dizine geri döneceksin. yeni oturuma başladın.
Kabul edilen cevap şart için çok iyi. Sık sık sadece iki (şimdiki ve önceki) yerine birçok yeni dizinler arasında geçiş yapmak zorunda kalıyorum.
Son zamanlarda günlük işlerimi kolaylaştırmak için bir parti hazırladım. https://gist.github.com/programus/2d2738b2a746140186f7738b678bdcec
cdx :
. Teşekkürler! En çok oy alan cevap olmalı.
Ne yapıyorum
rem capture the path of the initial dir
set RET_DIR=%CD%
rem do stuff...
rem and then return to the initial dir
cd %RET_DIR%