Was ist der Unterschied zwischen "C: FILE.TXT" und "C: \ FILE.TXT"?

13

Was ist der Unterschied zwischen " C:FILE.TXT" und " C:\FILE.TXT"?

Sind sie gleich

SIE
quelle

Antworten:

26

C:FILE.TXTverweist auf FILE.TXTim aktuellen Verzeichnis des LaufwerksC:

C:\FILE.TXTverweist auf FILE.TXTim Stammverzeichnis von drive C:( C:\)

Sie sind nicht gleich.

Bearbeiten: Eingabeaufforderung Beispiel:

Windows merkt sich für jedes Laufwerk ein aktuelles Arbeitsverzeichnis. Angenommen, Sie arbeiten im Verzeichnis C:\UTILSund wechseln dann zum Laufwerk F:und dann zum Verzeichnis BINauf F::

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

Zu diesem Zeitpunkt ist das aktuelle Arbeitsverzeichnis für C:noch C:\UTILSund das aktuelle Arbeitsverzeichnis für F:istF:\BIN

Sie können dies mit dem folgenden CDBefehl überprüfen :

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

F: \ BIN>

Beachten Sie, dass Sie das Arbeitslaufwerk C:mit diesem Befehl nicht wieder auf geändert haben .

Wie Sie in den folgenden Befehlsbeispielen sehen werden, macht die Verwendung eines Backslash ( \) unmittelbar nach einem Laufwerksnamen ( X:) den Dateispeicherort absolut. Das Umgehen des Backslashs bezieht automatisch das aktuelle Arbeitsverzeichnis für das Laufwerk mit ein.

F: \ BIN> COPY F: PROGRAM.EXE C:     Kopien * F: \ BIN \ PROGRAM.EXE bis C: \ UTILS \ PROGRAM.EXE 
F: \ BIN> COPY F: PROGRAM.EXE C: \    Kopien * F: \ BIN \ PROGRAM.EXE nach C: \ PROGRAM.EXE 
F: \ BIN> COPY F: \ PROGRAM.EXE C:    Kopiert * F: \ PROGRAM.EXE nach C: \ UTILS \ PROGRAM.EXE

F: \ BIN> COPY F: PROGRAM.EXE C: NEW \ NEW_PROG.EXE    Kopiert * und benennt um
                                                F: \ BIN \ PROGRAM.EXE
                                                zu C: \ BIN \ NEW \ NEW_PROG.EXE
 

* 'Kopien' bedeutet 'Kopierversuche'. Diese Befehle schlagen fehl, wenn die angenommenen Verzeichnisstrukturen und aktuellen Arbeitsverzeichnisse nicht vorhanden sind oder von einem anderen Prozess geändert werden.

In dem Fall, dass das Arbeitsverzeichnis ist das Stammverzeichnis (z. C:\) Dann C:PROGRAM.EXEund C:\PROGRAM.EXEauf die gleiche Stelle, aber sie haben mit verschiedenen Methoden bei angekommen waren.

Mike Fitzpatrick
quelle
2
Tatsächlich können sie identisch sein, wenn das aktuelle Verzeichnis von C: das Stammverzeichnis ist.
Synetech,
3
@Synetech; Nur weil sie sich auf denselben Ort beziehen können, heißt das nicht, dass sie dasselbe sind
Phoshi
Beachten Sie, dass Windows NT "aktuelle Verzeichnisse" nicht mehr pro Laufwerk verfolgt. Diese Syntax ist jetzt nur in der cmd.exeShell nützlich . Wenn in anderen Programmen ein anderes Laufwerk als das aktuelle angegeben wird, beziehen sich diese Pfadangaben immer auf das Stammverzeichnis dieses Laufwerks.
user1686
@Phoshi, ja, sie sind in bestimmten Zusammenhängen gleich. Es ist, als würde man sagen, das int xist dasselbe wie int y; Sie sind nicht ===, können aber == sein, wenn beide den gleichen Wert haben. @grawity, natürlich haben Windows-Apps (Win32, nicht nur NT) kein CWD pro Laufwerk, da dies in diesem Zusammenhang nichts bedeuten würde. Unabhängig davon ist es nicht nur cmd; Alle Konsolen-Apps haben es .
Synetech
@Mike Eigentlich kann ich nach dem Lesen der Antwort immer noch keinen Unterschied feststellen. Könnten Sie es für einen dummen Benutzer ausarbeiten?
Pacerier