В чем разница между «C: FILE.TXT» и «C: \ FILE.TXT»?

Ответы:

26

C:FILE.TXTссылается FILE.TXTна текущий каталог дискаC:

C:\FILE.TXTссылается FILE.TXTв корневом каталоге диска C:( C:\)

Они не то же самое.

Изменить: Пример командной строки:

Windows запоминает текущий рабочий каталог для каждого диска. Допустим , вы работаете в каталоге , C:\UTILSа затем изменить на диск , F:а затем в папку BINна F::

C: \ UTILS> F:
 F: \> CD BIN
 F: \ BIN>

На данный момент текущий рабочий каталог для C:по-прежнему C:\UTILSи текущий рабочий каталог для F:этоF:\BIN

Вы можете проверить это с помощью CDкоманды:

F: \ BIN> CD C:
C: \ Utils

F: \ BIN>

Обратите внимание, что вы не изменили рабочий диск обратно C:с помощью этой команды.

Как вы увидите из следующих примеров команд, использование обратной косой черты ( \) сразу после имени диска ( X:) делает расположение файла абсолютным. Пропуск обратной косой черты автоматически включает текущий рабочий каталог диска.

F: \ BIN> COPY F: PROGRAM.EXE C:     Копирует * F: \ BIN \ PROGRAM.EXE в C: \ UTILS \ PROGRAM.EXE 
F: \ BIN> COPY F: PROGRAM.EXE C: \    Копирует * F: \ BIN \ PROGRAM.EXE в C: \ PROGRAM.EXE 
F: \ BIN> COPY F: \ PROGRAM.EXE C:    Копирует * F: \ PROGRAM.EXE в C: \ UTILS \ PROGRAM.EXE

F: \ BIN> COPY F: PROGRAM.EXE C: NEW \ NEW_PROG.EXE    Копирует * и переименовывает
                                                F: \ BIN \ program.exe
                                                в C: \ BIN \ NEW \ NEW_PROG.EXE
 

* «Копии» означает «попытки копирования». Эти команды не будут выполнены, если предполагаемые структуры каталогов и текущие рабочие каталоги не существуют или изменены другим процессом.

В случае, когда рабочим каталогом является корневой каталог (например C:\), тогда C:PROGRAM.EXEи C:\PROGRAM.EXEуказывают на то же место, но они были получены разными методами.

Майк Фитцпатрик
источник
2
На самом деле они могут быть одинаковыми, если текущий каталог C: является корневым.
Synetech
3
@Synetech; То, что они могут ссылаться на одно и то же место, не означает, что они одно и то же
Фоши
Обратите внимание, что Windows NT больше не отслеживает «текущие каталоги» для каждого диска; этот синтаксис теперь полезен только в cmd.exeоболочке. В других программах, если указан диск, отличный от текущего, такие пути будут всегда относиться к корню этого диска.
user1686
@ Фоши, да, они одинаковы в определенных контекстах. Это как сказать, что int xэто то же самое, что и int y; они не ===, но они могут быть ==, если оба имеют одинаковое значение. @ Grawity, конечно, приложения Windows (Win32, а не только NT) не имеют cwd для каждого диска, так как это ничего не значит в этом контексте. В любом случае, это не просто cmd; Все консольные приложения имеют это .
Synetech
@ На самом деле, после прочтения ответа, я все еще не могу понять разницу. не могли бы вы разработать это для тупого пользователя?
Pacerier