Za pomocą polecenia cd w wierszu polecenia systemu Windows nie można przejść do D: \


226

To może być głupie pytanie i myślę, że szukałem odpowiedzi gdzie indziej ... Może to być problem ze ścieżką, ale kiedy otwieram wiersz poleceń i piszę z C:\>:

cd D:\

Nie mogę dostać się na dysk D. Nawet jeśli napiszę:

cd D:\<folder name>

command.exeAutomatycznie uzupełnia linię za pomocą klawisza Tab, więc wie, gdzie jestem. Po prostu nie drukuje, aby wyświetlić wynik lub faktycznie mnie tam dostać. Ten problem występuje również w przypadku dysków sieciowych.

Teraz, jeśli użyję polecenia chdir( cd) w następujący sposób:

chdir D: lub cd d:

Dostaję wydruk D:\poniżej polecenia, ale nadal mówi, że jestem w C:\.

Czuję, że brakuje mi czegoś prostego.


I był używany pushdw miejsce cdprawie wszędzie, ponieważ zachowuje się znacznie lepiej w takich sytuacjach.
Goyuix,

5
Zobacz odpowiedź „ cd / d D:superuser.com/a/135239/78897
Pacerier

1
Spróbuj tego: cd / dd:
DevWL

Odpowiedzi:


324

Wracając do czasów DOS, dla każdego napędu istnieje osobny „katalog bieżący”. cd D:\foldernamezmienia bieżący katalog D: na podaną nazwę folderu, ale nie zmienia faktu, że nadal pracujesz na C:dysku.

To, czego chcesz, jest proste:

D:

Tutaj możesz zobaczyć, jak działa „osobny katalog bieżący dla każdego dysku”:

C:\Users\coneslayer>e:

E:\>c:

C:\Users\coneslayer>cd e:\software

C:\Users\coneslayer>e:

e:\Software>

16
W sytuacji „najszybszego działa na zachodzie” zwycięzcą jest ten, który najlepiej wyjaśnia. +1 i usuwam moją podobną odpowiedź.
Gnoupi

2
Usunąłem też moją. Nie ma potrzeby dodatkowego bałaganu.
th3dude

3
-1 a) nie wskazałeś, że cd e:\softwarelinia nic nie zrobiła. Tak jakbyś wsadził tam fantomowe polecenie CD Dlaczego? Żeby sprawił, że pomyślał, że używasz CD, kiedy nie byłeś? i b) jak do diabła nie możesz wspomnieć o /dwłączeniu CD do określonego katalogu na innym dysku Powiedział on za pomocą polecenia cd, więc dobrze, że wskazałeś, jak można to zrobić bez polecenia CD d:<ENTER>, powinieneś wspomnieć o polecenie CD, cd /d d:albocd /d d:\blah
barlop

3
@barlop cd E:\softwareNIE robi nic. Zmienia bieżący katalog na partycji E do softwarefolderu, który jest co wykazano kiedy wreszcie przejście na partycji E z E:. Dobra sugestia z cd / d.
miyalys,

@miyalys ciekawy i świetny punkt
Barlop

78

Udało się , ponieważ polecenie zostało zaprojektowane do działania.

Po prostu nie wiesz, jak to naprawdę powinno działać.

Nie używasz programu powłoki Unix lub Linux. cdPolecenie interpretera poleceń Microsoft nie zachowuje się jak cdkomendy w takich skorup zrobić. Zachowuje się nieco inaczej. W szczególności nie zawsze zmienia katalog . W powłokach Unix i Linux cdustawia tylko katalog roboczy. W interpreterze poleceń Microsoftu cdczasami odpytuje go. Nie ma oddzielnego pwdpolecenia, podobnie cdjak dwa zadania.

Jeśli nie podasz żadnych argumentów lub argumentu, który jest tylko literą dysku i dwukropkiem bez ścieżki, wówczas zgłasza bieżący katalog zamiast go zmieniać . Jeśli nie podasz żadnych argumentów, zgłasza bieżący katalog bieżącego napędu procesu interpretera poleceń. Jeśli podasz mu tylko literę dysku i dwukropek jako argument, zgłasza, że ​​katalog interpretera komend przetwarza bieżący katalog tego dysku. Każdy dysk ma własny katalog bieżący w interpretera poleceń. (Jest to fikcja utrzymywana przez biblioteki wykonawcze dla implementacji różnych języków programowania przez Microsoft i kilku innych dostawców. Sam Win32 nie działa w ten sposób.)

Więc kiedy podałeś go d:jako argument, zgłosił ci bieżący katalog procesu interpretera poleceń na dysku D, który był D:\. Jeśli nie podałbyś mu żadnych argumentów, zgłosiłbyś C:\się.

Jeśli chcesz, aby cdpolecenie było zawsze w trybie ustawiania i nigdy nie było w trybie zapytania , musisz dodać /Ddo niego opcję. Wymusza to, aby polecenie zawsze znajdowało się w trybie ustawiania, a także rozszerza je, tak aby zmieniał bieżący dysk, a także zmieniał bieżący katalog dysku. (Innymi słowy, działa bardziej tak, jak faktycznie działa podstawowy interfejs API Win32.)

Na przykład wiersz poleceń

cd / dd:
zmieni katalog na bieżący katalog na dysku D, a także zmieni bieżący dysk na dysk D.

Jeśli chcesz zmienić bieżący dysk interpretera poleceń, w przeciwnym razie cdpolecenie nie jest odpowiednie. Robisz to po prostu wpisując literę dysku i dwukropek:

re:

Dalsza lektura

  • Oprogramowanie JP (2011). CD / CHDIR TCC Pomoc online.
  • Microsoft Corporation (2001). Chdir (CD) . TechNet Windows XP Odniesienie do wiersza poleceń A – Z.


3
Nie do końca w porządku. Jeśli to zrobisz cd d:\ , zmieni katalog roboczy na d:. Jeśli zrobisz to d:\ później, będzie to d:\ . Jeśli tego cd d:\something\somethingnie zrobisz, na początku nic się nie stanie. Ale jeśli zrobisz to d:\ później, twoja ścieżka będzie d:\something\something"!
sinni800,

4
Żadne z nich nie jest w żaden sposób sprzeczne z tym, co napisano powyżej sinni800(poza tym, że źle zrozumiałeś składnię zmieniania bieżącego napędu, ale przeoczę to). Nie zamieściłem dyskusji na temat tego, co się dzieje, gdy podaje się nazwę ścieżki w argumencie, ponieważ (a) nie o to chodzi w pytaniu i (b) jest to w dalszym czytaniu.
JdeBP

6
Nie, my nie jesteśmy. Błędem byłoby mówić o partycjach dysków zamiast tutaj user unknown. Po pierwsze, partycje nie są takie same jak woluminy, a litery dysków są mapowane na woluminy, a nie na partycje. A kiedy mówi się na tym poziomie abstrakcji, litera dysku i dysk bieżący są konwencjonalnymi terminami, jak tutaj użyto, we wskazanym dalszym czytaniu, a nawet w cd /?tekście pomocy.
JdeBP,

2
Używałem tego polecenia przez co najmniej 20 lat i nigdy o tym nie wiedziałem.
Chris Ballance,

54

Obawiam się, że to nieprawda. To prawda od czasów DOS, ale wiersz poleceń w Windows NT i późniejszych nie jest DOS. W wierszu poleceń, z którego wszyscy korzystają dzisiaj, masz przełącznik / D. Przełącznik / d spowoduje zmianę bieżącego katalogu określonego napędu ORAZ przejście do tego katalogu. Przełącznik / d musi być określony przed ścieżką. Na przykład:

C:\> cd /d D:\foo\bar\
D:\foo\bar\>

wiersz polecenia systemu Windows cd


4
+1, ponieważ nauczyłem się czegoś nowego, ale nie sądzę, że cokolwiek napisałem, jest nieprawidłowe.
coneslayer

3
Twoja odpowiedź też jest poprawna, Multiverse IT, ale coneslayer nie był niepoprawny. Dziękuję za Twój wysiłek. Nauczyłem się dwóch wielkich sztuczek w tej kwestii.
nicorellius

2
Z mojego punktu widzenia „To, czego chcesz, jest proste ... D:” jest nieprawidłowe. Tak, to działa i jest prawidłową metodą osiągnięcia celu, ale nie jest, ściśle mówiąc, czego powinien chcieć. Ponadto sposób sformułowania komentarza oznacza, że ​​nie można do tego użyć dysku CD - ta implikacja jest nieprawidłowa.
Multiverse IT

1
jego głównym problemem jest „Nie mogę dostać się na dysk D.”. Jako taka druga odpowiedź jest poprawna. Twoje rozwiązanie zajmuje tylko jeden krok mniej (co jest dobre). To nie czyni drugiego niepoprawnym.
Gnoupi

1
Hmm, „czego powinien chcieć”. Brzmi raczej przypuszczalnie ;-)
nicorellius

20

CD oznacza C mień D irectory, a nie zmiany napędu. Nie zmieniłoby się to na D: tak. Aby to osiągnąć, wystarczy wpisać literę dysku

na przykład

re:


16
cd / DD: zmienia dyski i katalogi ...
Michael S.

Ale d: to partycja, a nie dysk.
użytkownik nieznany

1
@userunknown W erze Dos 1.0, kiedy zaprojektowano powłokę, istniały tylko dyskietki, których AFAIK nie można podzielić na partycje. Początkowa obsługa dysku twardego dotyczyła tylko podstawowej (pierwszej) partycji na dysku. Rozszerzona obsługa partycji została dodana dopiero później.
Dan Neely,

Nie widzę tagu MS-DOS 1.0 ani 1.0 wspomnianego. Być może nie możesz podzielić dysku na partycje za pomocą programów MS-DOS, ale możesz zainstalować MS-DOS na dysku podzielonym na partycje. Wydaje mi się, że MS-DOS nie jest już obsługiwany, a tag jest tam, ponieważ wielu użytkowników uważa, że ​​cmd.exe i MS-DOS oznaczają to samo, co jest kolejnym błędem do rozwiązania. Apropos: MS-DOS 1.0 nigdy nie został opublikowany.
użytkownik nieznany

1
@uunkunknown Decyzje projektowe sięgają początkowych wersji DOS. Zmiana zachowań spowodowałaby uszkodzenie starszych programów (patrz komentarz Daniela Becka poniżej). PS; według Wikipedii opublikowano MS DOS 1.x.
Dan Neely

9

Katalog roboczy w cmd.exe jest utrzymywany na volume-by-volumepodstawie; katalog roboczy dla C:dysku jest inny niż katalog roboczy dla D:dysku.

Gdy przekażesz tylko literę dysku cd, wydrukuje katalog roboczy dla określonego dysku.

W twoim przypadku, katalog roboczy D:napędu jest korzeniem sama objętość, D:\.

Aby zmienić woluminów z C:celu D:wystarczy wpisać literę:

C:\>D:
D:\>

2
cd / DD: zmienia dyski i katalogi ...
Michael S.

1
Partycje są mapowane na literę dysku i są praktycznie takie same jak dysk. Możesz także zamapować katalog lub udział na dysk, a one zachowują się tak samo.
Marty Fried


5

Jeśli chcesz zmienić dysk w wierszu polecenia DOS, po prostu musisz napisać:

[Drive Letter]:

Na przykład, jeśli chcesz przejść na dysk D: \, wystarczy wpisać następujące polecenie w wierszu polecenia:

D:

Zmieniasz partycję [Drive Letter]:, wierz mi lub przetestuj!
użytkownik nieznany

Och, wow, dzięki temu wszystko jest o wiele łatwiejsze. Zawsze o tym zapominam, /ddzięki czemu przełączanie jest znacznie szybsze.
Mateen Ulhaq

2

pushddziała nawet wtedy, gdy musisz przejść do podkatalogu drive np D:\Tests\Logs.

Po prostu użyj go, aby:

pushd D:\Tests\Logs

Jeśli chcesz wrócić do poprzedniego katalogu, użyj popd:

C:\Users>pushd D:\Tests\Logs
D:\Tests\Logs>popd
C:\Users>

0

Podczas wyszukiwania opcji na pasku narzędzi i wyszukiwania cmd lub wybierając polecenie Windows Wszystkie aplikacje wybierając wiersz polecenia, następuje przejście do innego wiersza polecenia. Zamiast tego spróbuj nacisnąć przycisk Windows + R i wyszukaj polecenie cmd, które zajmie dysk C:>. Stamtąd możesz przejść do D:> lub gdziekolwiek potrzebujesz

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.