Чому CD в Windows не в змозі перемикатися між накопичувачами? [дублікат]


12

Можливий дублікат:
Використовуючи команду cd у командному рядку Windows, не вдається перейти до D: \

Чому, просто чому, cdв Windows так нерозумно і не робить того, що повинен робити в таких ситуаціях:

I:\Documents and Settings\blah\>cd C:\somedir\
I:\Documents and Settings\blah\>

Я знаю, що ти можеш chdir /d. Але чому це не поведінка за замовчуванням?


@kinokijuf: не редагуйте теги, якщо ви не знаєте, що вони означають.
houbysoft

Я не згоден, це дублікат. "Дублікат" запитує як , а не чому .
vcsjones

Відповіді:


21

Це за дизайном. Кожен "диск" має свій власний робочий каталог. Ви можете використовувати chdirабо просто ввести літеру диска:

> D:

І це зміниться на диск D. Якщо ви хочете знати, чому така поведінка існує, див . Пояснення Реймонда Чена


Як пише в блозі s/has/used to have/, і cmdоболонка імітує цю поведінку.
user1686

В основному, тому що CD - це зміна каталогу, а не зміна диска.
Роб

11

У Windows можна використовувати рідне cd/d <drive>:<path>або інше chdir/dабо pushd. Саме ця /dопція вказує на те, що привід повинен змінюватися також. pushdКоманда робить це за замовчуванням.

Можна навіть псевдонім CD зробити так, що поведінка за замовчуванням так:

doskey cd=chdir/d $*

Тоді можна використовувати такі дії, як:

cd D:\Temp
cd C:\WINDOWS

і привід також зміниться.

cd/?За додатковою інформацією зверніться до довідки .


2

Це історична річ. cdзмінює лише поточний каталог на вказаному диску (поточний, якщо його немає), і <drive>:змінює диски в папку на цьому диску, яка була cdраніше ( \якщо такої немає)


1

деякі сторонні оболонки, як-от 4dos, мають для цього команду CDD

Ви можете створити пакетний файл під назвою "cdd.bat" у головному каталозі Windows із наступного рядка:

@cd /d %1 %2 %3 %4 %5 %6 %7 %8 %9

Тепер ви можете зробити наступне за допомогою нової команди CDD:

C:> cdd d:

D:> cdd c: \ документи та налаштування

C: \ Документи та налаштування> cdd d: \ data

D: \ дані>


Як щодо@cd /d %*
користувач1686
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.