`cd` nie zmienia katalogu w Windows 7 [duplikat]

20

Możliwa duplikat:
Za pomocą polecenia cd w wierszu polecenia systemu Windows nie można przejść do D: \
CMD cd na inne dyski oprócz C: \ nie działa

Pracuję z cmd.exesystemem Windows 7 (w przeciwieństwie do Powershell). Na dysku mam 2 partycje, C zawiera system operacyjny i zainstalowane programy, a D zawiera moje dane. Próbowałem przejść cdz C do D, ale cmd nie pozwolił mi:

C:\>cd D:\

C:\>

Jednak kiedy piszę dir D:\, poprawnie wyświetli zawartość D. Dlaczego to robi i jak mogę to naprawić? Powershell działa dobrze, więc mogę z niego korzystać, ale chciałbym wiedzieć, co powoduje cmdzłe zachowanie.

astay13
źródło
Czy ktoś może zrobić tag msdos? Myślę, że to pytanie dotyczy wszystkich wersji DOS od wersji 1.0 i nowszych. Jeśli dobrze pamiętam, CP / M nie miał tej koncepcji, ale można było adresować osobne dyski, przygotowując program do przywracania: do nazwy pliku. Myślę, że jest to ważne, ponieważ jest to ważne pytanie dla kogoś, kto nie przeżył ery DOS, a nie jako pytanie Windows 7 jako takie.
Stuart Woodward,
@StuartWoodward faktycznie DOS 1.0 nie miał podkatalogów - zostały wprowadzone w wersji 2.0.
Jesse Slicer,

Odpowiedzi:

33

Musisz tylko użyć d: , niecd d:\

EDYCJA: można również użyć cd /d d:do zmiany dysków za pomocą cd

soandos
źródło
Nie jestem do końca pewien, dlaczego podjąłem tę decyzję projektową i szukam jej, ale tak po prostu zawsze było.
soandos
@ astay13 patrz edycja.
soandos
1
@soandos cdoznacza „zmień katalog” i D:jest dyskiem, a nie katalogiem. Zobacz odpowiedź Davida, aby uzyskać więcej informacji
Izkata,
@Izkata dlaczego nie możesz zmienić katalogu na inny dysk przy użyciu tej samej składni, co przejście do innego folderu? tak mówiłem.
soandos
Zmienia katalog: np .: C: \> cd D: \ test, zmienia bieżący katalog na dysku D: w celu przetestowania, ale monit nadal jest w C:
Sebastian Godelet
28

System Windows śledzi osobny katalog roboczy dla każdego dysku. Aktualnie znajdujesz się na dysku „C” w katalogu roboczym „\”. Po wpisaniu cd d:\zmienia katalog roboczy dla dysku „D” na „\” i nie ma wpływu na katalog roboczy dysku C. Aby zmienić dyski, po prostu wpisz D:. Możesz zmienić oba jednocześnie z /dparametrem na cd.

David Schwartz
źródło
3
W rzeczywistości system Windows, o którym pytający mówi, że działa xe - Windows NT 6.1 - nigdy - od 1993 roku - nie miał osobnego katalogu roboczego dla każdego napędu. Istnieje jeden katalog roboczy na proces. Wygląd wielu katalogów pracy na wielu dyskach jest fikcją utrzymywany przez interpreter poleceń Microsoft i bibliotek uruchomieniowych swoich językach, przy użyciu ukrytych zmiennych środowiskowych.
JdeBP
@JdeBP Ukryte zmienne środowiskowe, które śledzą osobny katalog roboczy dla każdego dysku? I czy interpreter poleceń Microsoft i biblioteki wykonawcze jego języków są częścią systemu Windows?
David Schwartz
1

Należy zauważyć, że pushd(np. pushd D:\) Zawsze zmieni dyski.

Bobbymcr
źródło
Byłoby to cudowne jako komentarz do pytania, ale nie odpowiada na pytanie.
Stuart Woodward,