Яка різниця між "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:     Copies * F: \ BIN \ PROGRAM.EXE to C: \ UTILS \ PROGRAM.EXE 
F: \ BIN> COPY F: PROGRAM.EXE C: \    Copies * 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; Тільки тому, що вони можуть посилатися на одне і те ж місце, не означає, що вони однакові
Phoshi

Зауважте, що Windows NT більше не відстежує "поточні каталоги" на привід; цей синтаксис зараз корисний лише в cmd.exeоболонці. В інших програмах, якщо заданий диск, відмінний від поточного, такі специфікації шляху завжди будуть відповідні кореням цього диску.
користувач1686

@Phoshi, так, вони однакові в певних контекстах. Це як сказати, що int xце те саме, що int y; вони не ===, але вони можуть бути ==, якщо обидва мають однакове значення. @grawity, звичайно, додатки для Windows (Win32, а не лише NT) не мають диска на кожному диску, оскільки це не означатиме нічого в цьому контексті. Незалежно, це не просто cmd; всі консольні програми мають його .
Synetech

@Mike насправді після прочитання відповіді я все ще не можу сказати різницю. ви могли б розробити це для німого користувача?
Pacerier
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.