Jaka jest różnica między „C: FILE.TXT” a „C: \ FILE.TXT”?

13

Jaka jest różnica między „ C:FILE.TXT” a „ C:\FILE.TXT”?

Czy oni są tacy sami?

TY
źródło

Odpowiedzi:

26

C:FILE.TXTodnosi się do FILE.TXTbieżącego katalogu dyskuC:

C:\FILE.TXTodnosi się do FILE.TXTkatalogu głównego drive C:( C:\)

One nie są takie same.

Edycja: wiersz polecenia Przykład:

Windows zapamiętuje bieżący katalog roboczy dla każdego dysku. Załóżmy, że pracujesz w katalogu, C:\UTILSa następnie zmieniasz na dysk, F:a następnie na katalog BINna F::

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

W tym momencie bieżący katalog roboczy C:jest nadal, C:\UTILSa bieżącym katalogiem roboczym F:jestF:\BIN

Możesz to sprawdzić za pomocą CDpolecenia:

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

F: \ BIN>

Zauważ, że nie zmieniłeś ponownie działającego napędu C:za pomocą tego polecenia.

Jak widać z poniższych przykładów poleceń, użycie odwrotnego ukośnika ( \) bezpośrednio po nazwie napędu ( X:) powoduje, że położenie pliku jest bezwzględne. Ommiting odwrotnego ukośnika automatycznie obejmuje bieżący katalog roboczy dla dysku.

F: \ BIN> COPY F: PROGRAM.EXE C:     Kopiuje * F: \ BIN \ PROGRAM.EXE do C: \ UTILS \ PROGRAM.EXE 
F: \ BIN> COPY F: PROGRAM.EXE C: \    Kopiuje * F: \ BIN \ PROGRAM.EXE do C: \ PROGRAM.EXE 
F: \ BIN> COPY F: \ PROGRAM.EXE C:    Kopiuje * F: \ PROGRAM.EXE do C: \ UTILS \ PROGRAM.EXE

F: \ BIN> COPY F: PROGRAM.EXE C: NEW \ NEW_PROG.EXE    Kopiuje * i zmienia nazwy
                                                F: \ BIN \ PROGRAM.EXE
                                                do C: \ BIN \ NEW \ NEW_PROG.EXE
 

* „Kopie” oznaczają „próby kopiowania”. Te polecenia zakończą się niepowodzeniem, jeśli założone struktury katalogów i bieżące katalogi robocze nie istnieją lub zostaną zmienione przez inny proces.

W przypadku, gdy katalog roboczy jest katalogiem głównym (np. C:\), To C:PROGRAM.EXEi C:\PROGRAM.EXEpunkt w tej samej lokalizacji, ale zostały one przybył różnymi metodami.

Mike Fitzpatrick
źródło
2
W rzeczywistości mogą być takie same, jeśli bieżącym katalogiem C: jest katalog główny.
Synetech,
3
@Synetech; To, że mogą odnosić się do tego samego miejsca, nie oznacza, że ​​są tym samym
Phoshi,
Zauważ, że Windows NT nie śledzi już „bieżących katalogów” na dysk; ta składnia jest teraz użyteczna tylko w cmd.exepowłoce. W innych programach, jeśli podany zostanie dysk inny niż bieżący, takie specyfikacje ścieżki będą zawsze zależały od katalogu głównego tego dysku.
user1686,
@ Phoshi, tak, są takie same w niektórych kontekstach. To tak, jakby powiedzieć, że int xto samo co int y; nie są ===, ale mogą być ==, jeśli oba mają tę samą wartość. @grawity, oczywiście aplikacje Windows (Win32, nie tylko NT) nie mają cwd na dysk, ponieważ w tym kontekście nic by to nie znaczyło. Niezależnie od tego, nie chodzi tylko o cmd; wszystkie aplikacje na konsolę mają to .
Synetech
@Mike właściwie po przeczytaniu odpowiedzi nadal nie mogę powiedzieć różnicy. czy mógłbyś to opracować dla głupiego użytkownika?
Pacerier