Она did работает, так как команда предназначена для работы.
Вы просто не знаете, как она на самом деле должна работать.
Вы не используете оболочку Unix или Linux. Команда cd
в командном интерпретаторе Microsoft не ведет себя так, как ведут себя команды cd
в таких оболочках. Она ведет себя несколько иначе. В частности, it не всегда меняет директорию. В оболочках Unix и Linux cd
всегда только устанавливает рабочий каталог. В командном интерпретаторе Microsoft, cd
иногда запрашивает его. Отдельной команды pwd
нет, поэтому cd
делает два задания.
Если вы не даете аргументов, или аргумент, который является просто буквой диска и двоеточием без указания пути, то it сообщает о текущем каталоге вместо того, чтобы изменять его. Если вы не приводите аргументов, то _it сообщает текущую директорию текущего диска командного интерпретатора процесса. Если в качестве аргумента указать только букву диска и двоеточие, то _it сообщает текущий каталог этого диска командного интерпретатора. Каждый диск имеет свой текущий каталог в командном интерпретаторе. (Это выдумка, поддерживаемая библиотеками времени выполнения для реализаций Microsoft и некоторых других производителей различных языков программирования. Сама по себе Win32 так не работает)
Так что, когда вы дали ей d:
в качестве аргумента, она сообщила вам текущую директорию командного интерпретатора процесса на диске D, которая оказалась `D:## Она did работает, так как команда предназначена для работы.
Вы просто не знаете, как она на самом деле должна работать.
Вы не используете оболочку Unix или Linux. Команда cd
в командном интерпретаторе Microsoft не ведет себя так, как ведут себя команды cd
в таких оболочках. Она ведет себя несколько иначе. В частности, it не всегда меняет директорию. В оболочках Unix и Linux cd
всегда только устанавливает рабочий каталог. В командном интерпретаторе Microsoft, cd
иногда запрашивает его. Отдельной команды pwd
нет, поэтому cd
делает два задания.
Если вы не даете аргументов, или аргумент, который является просто буквой диска и двоеточием без указания пути, то it сообщает о текущем каталоге вместо того, чтобы изменять его. Если вы не приводите аргументов, то _it сообщает текущую директорию текущего диска командного интерпретатора процесса. Если в качестве аргумента указать только букву диска и двоеточие, то _it сообщает текущий каталог этого диска командного интерпретатора. Каждый диск имеет свой текущий каталог в командном интерпретаторе. (Это выдумка, поддерживаемая библиотеками времени выполнения для реализаций Microsoft и некоторых других производителей различных языков программирования. Сама по себе Win32 так не работает)
Так что, когда вы дали ей d:
в качестве аргумента, она сообщила вам текущую директорию командного интерпретатора процесса на диске D, которая оказалась . Если бы вы вообще не приводили аргументов, он бы сообщил вам `C:## Она did работает, так как команда предназначена для работы.
Вы просто не знаете, как она на самом деле должна работать.
Вы не используете оболочку Unix или Linux. Команда cd
в командном интерпретаторе Microsoft не ведет себя так, как ведут себя команды cd
в таких оболочках. Она ведет себя несколько иначе. В частности, it не всегда меняет директорию. В оболочках Unix и Linux cd
всегда только устанавливает рабочий каталог. В командном интерпретаторе Microsoft, cd
иногда запрашивает его. Отдельной команды pwd
нет, поэтому cd
делает два задания.
Если вы не даете аргументов, или аргумент, который является просто буквой диска и двоеточием без указания пути, то it сообщает о текущем каталоге вместо того, чтобы изменять его. Если вы не приводите аргументов, то _it сообщает текущую директорию текущего диска командного интерпретатора процесса. Если в качестве аргумента указать только букву диска и двоеточие, то _it сообщает текущий каталог этого диска командного интерпретатора. Каждый диск имеет свой текущий каталог в командном интерпретаторе. (Это выдумка, поддерживаемая библиотеками времени выполнения для реализаций Microsoft и некоторых других производителей различных языков программирования. Сама по себе Win32 так не работает)
Так что, когда вы дали ей d:
в качестве аргумента, она сообщила вам текущую директорию командного интерпретатора процесса на диске D, которая оказалась `D:## Она did работает, так как команда предназначена для работы.
Вы просто не знаете, как она на самом деле должна работать.
Вы не используете оболочку Unix или Linux. Команда cd
в командном интерпретаторе Microsoft не ведет себя так, как ведут себя команды cd
в таких оболочках. Она ведет себя несколько иначе. В частности, it не всегда меняет директорию. В оболочках Unix и Linux cd
всегда только устанавливает рабочий каталог. В командном интерпретаторе Microsoft, cd
иногда запрашивает его. Отдельной команды pwd
нет, поэтому cd
делает два задания.
Если вы не даете аргументов, или аргумент, который является просто буквой диска и двоеточием без указания пути, то it сообщает о текущем каталоге вместо того, чтобы изменять его. Если вы не приводите аргументов, то _it сообщает текущую директорию текущего диска командного интерпретатора процесса. Если в качестве аргумента указать только букву диска и двоеточие, то _it сообщает текущий каталог этого диска командного интерпретатора. Каждый диск имеет свой текущий каталог в командном интерпретаторе. (Это выдумка, поддерживаемая библиотеками времени выполнения для реализаций Microsoft и некоторых других производителей различных языков программирования. Сама по себе Win32 так не работает)
Так что, когда вы дали ей d:
в качестве аргумента, она сообщила вам текущую директорию командного интерпретатора процесса на диске D, которая оказалась . Если бы вы вообще не приводили аргументов, он бы сообщил вам .
Если вы хотите, чтобы команда cd
в always была в режиме set mode и никогда не была в режиме request, вам нужно добавить к ней опцию /D
. Это заставляет команду всегда быть в режиме установки, а также расширяет ее так, чтобы она изменяла текущий диск, а также изменяла текущую директорию диска. (Другими словами, это больше похоже на то, что делает Win32 API)
Так, например, командная строка
cd /d d:
изменит каталог на любой текущий каталог на диске D, а также изменит текущий диск на диск D.
Если вы хотите изменить текущий диск процесса командного интерпретатора иначе, то команда cd
- это не тот путь. Вы делаете это, просто вводя букву диска и двоеточие:
d:
Дальнейшее чтение
- JP Software (2011). CD/CHDIR TCC On-line Help.
- корпорация Microsoft (2001). Chdir (CD) . TechNet Windows XP Ссылка на командную строку A-Z.