Dlaczego „cd D:” nie zmienia kontekstu poleceń na D :? [duplikować]

19

Możliwe zduplikowanie: za
pomocą polecenia cd w wierszu polecenia systemu Windows nie można przejść do D: \

Za każdym razem, gdy chcę zmienić kontekst katalogu na inny dysk (D, E, F itp.) W wierszu polecenia systemu Windows, muszę go użyć, "Drive letter":\aby go zmienić. Jeśli spróbuję użyć polecenia „cd”, po cd H:\prostu wywołaj dla mnie echo H: \ i nic nie rób:

Wpisz opis zdjęcia tutaj

Czy jest jakiś powód takiego zachowania? Mam na myśli, czy nie powinnaś cd commandtego robić? Dlaczego nie

Diogo
źródło
2
Związane .
Daniel Beck

Odpowiedzi:

28

Próbować:

cd /d d:

/d zmieni także litery dysków, a także katalogi, aby uzyskać więcej informacji, zobacz cd /?

jftuga
źródło
1
Wygląda na to, że cmd.exe dość dobrze naśladuje zachowanie DOS w tej sytuacji, dzięki czemu „katalog bieżący” dla każdego napędu jest wyraźnie zapamiętywany.
LawrenceC
4
To jest prawdziwa odpowiedź na pytanie „dlaczego Wdowy działają w ten sposób”: ponieważ DOS zrobił to w ten sposób.
KutuluMike,
12

Windows zachowuje się w ten sposób, ponieważ DOS zachowywał się w ten sposób.

W systemie DOS każdy dysk ma własny katalog bieżący, a cdpolecenie zmienia katalog bieżący na dysku. Jeśli zdarza się, że jest to bieżący dysk , katalog roboczy zmienia się wraz z nim. Jeśli chcesz zmienić bieżący dysk, po prostu podaj literę dysku jako polecenie.

Zauważ, że Windows nie działa już w ten sposób - w danym momencie masz tylko jeden katalog bieżący - ale powłoka poleceń robi wszystko, by udawać, że wciąż istnieją katalogi bieżące na dysk. Przypuszczalnie ma to na celu zachowanie zgodności z istniejącymi plikami wsadowymi DOS.

Powód, dla którego DOS działa w ten sposób, sięga najwcześniejszych wersji DOS i wcześniejszych wersji CP / M. Krwawe szczegóły można znaleźć na blogu Raymonda Chena .

KutuluMike
źródło
6

Prosta odpowiedź brzmi: „ponieważ nie jest napisane, aby działało w ten sposób”. Samo wejście D:zrobi to, co chcesz.

Ciekawe wpisanie cd D:\somedirspowoduje zmianę bieżącego katalogu D: na \ data, ale nie zmieni bieżącego wiersza poleceń na D :.

uSlackr
źródło