Я пытаюсь изменить каталог с диска C на диск E. но это не происходит через следующий код.

C:\>cd E:\Program files\wkhtmltopdf

C:\>echo %cd%
C:\

Он говорит, что C:\ является текущим каталогом после смены каталога. Пожалуйста, исправьте мою ошибку.

3 ответа3

5

Это нормальное поведение. CD означает «Изменить каталог». Чтобы сменить диск, перейдите к нему, набрав: E: с последующим вводом

C:\>E:_

E:\Program Files\wkhtmltopdf>_

Он запомнит ваше действие с компакт-диском, поэтому новый путь должен быть тем, к которому вы обратились.

1

Часть ответа, которую никто не объяснил, заключается в том, что Windows отслеживает (до) 26 различных текущих каталогов для каждого процесса (по одному на каждый диск), поэтому при вводе

C:\> cd E:\Program Files\wkhtmltopdf

вы меняете E: рабочий каталог \Program Files\wkhtmltopdf - но (как и другие ответы объяснили), вы не меняя свой текущий диск Е:, так что вы не видите изменения в рабочем каталоге.  (%CD% показывает только текущий каталог на текущем диске ; он не показывает остальные 25 текущих каталогов.)  Итак, вы можете напечатать

C:\> cd E:\Program Files\wkhtmltopdf

а потом

C:\> E:

и вы окажетесь в E:\Program Files\wkhtmltopdf .  Но это грязно и запутанно; используйте один из методов в других ответах.

1

Изменить текущий диск

По умолчанию команды cd или chdir не изменяют букву диска, на котором вы сейчас находитесь; вам нужно использовать параметр /d . Например:

cd /d E:

Вы также можете использовать определенный путь, если вы хотите:

cd /d "E:\Program files\wkhtmltopdf"

В качестве альтернативы вы можете использовать команду pushd (push directory), например:

pushd "E:\Program files\wkhtmltopdf"

Основное преимущество перед командой cd заключается в том, что вы можете использовать popd для простого восстановления предыдущего рабочего каталога и диска. Кроме того, команда pushd также обеспечивает поддержку путей UNC .

дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .