cd
фактически не меняет рабочий диск;он изменяет только рабочий каталог для этого диска.Вот почему это так распалось.
Пример может помочь:
C:\users\david>cd D:\some\path
C:\users\david>
Обратите внимание, что диск не изменился.
C:\users\david>D:
D:\some\path>
Теперь, когда D: «рабочий диск», рабочийКаталог будет изменен на тот, который вы указали ранее.
Как вы указали, cd /d
сделает оба.[ОБНОВЛЕНИЕ: Я, должно быть, пропустил /d
при чтении вашего оригинального сообщения :( - извините]
Я считаю, что вы правы - нет «веской» причины не использовать однострочник -- кроме совместимости с COMMAND.COM (который, я уверен, не поддерживает переключатель /d
). По этой причине я всегда создаю файлы сценариев с расширением .cmd
, если они зависят от функций, не поддерживаемых вCOMMAND.COM.
Лучшей альтернативой IMHO является использование pushd
, которое ведет себя подобно cd /d
- и также дает вам возможность вернуться туда, где вы были раньше (через popd
).может даже pushd
на UNC-путь (\\server\share
) и Windows создаст для вас временную букву диска (хотя я обнаружил эту функцию только сегодня утром, и у меня работает Win 7 Pro, поэтому я не уверенесли он доступен в более старых версиях и / или в домашних версиях.)