Ich habe versehentlich festgestellt, dass, wenn ich tue:
dir C:\
Ich erhalte im Stammverzeichnis eine Liste der Dateien, die direkte untergeordnete Elemente des Laufwerks C: sind.
Wenn ich jedoch tue:
dir C:
Ich erhalte eine riesige Liste von Dateien, bei denen ich nicht einmal sicher bin, wo sie sich befinden (DLLs, EXEs, CPLs usw.).
Wissen Sie, warum das passiert und woher diese Liste kommt?
dir c:
gibt die Liste der Dateien in Ihrem aktuellen Verzeichnis zurückAntworten:
Wenn
DIR location
Sie angeben, wird der Inhalt des Speicherorts angezeigt .Die Angabe
C:
bei vielen Befehlen, einschließlich desDIR
Befehls, bezieht sich auf das Laufwerk C und auf das aktuelle Verzeichnis. Geben Sie Folgendes ein, um Ihr aktuelles Verzeichnis anzuzeigen:Der
cd
Befehl wird normalerweise verwendet, um das aktuelle Verzeichnis zu ändern. Unter MS-DOS (und ähnlichen Betriebssystemen, einschließlich modernem Microsoft Windows, jedoch ohne Unix)cd
wird Ihnen jedoch das aktuelle Verzeichnis angezeigt, wenn Sie das Programm selbst ausführen .Wenn Sie den
cd
Befehl nicht verwendet haben, ist Ihr aktuelles Verzeichnis höchstwahrscheinlich das Verzeichnis, in das Ihr Betriebssystem installiert wurde. (Zumindest ist dies bei Microsoft Windows-Systemen ein weit verbreitetes Verhalten.)Du kannst das:
Das zeigt Ihnen den Inhalt von
C:\Program Files
Ebenso können Sie Folgendes tun:
copy C:*.*
und alle Inhalte aus dem aktuellen Verzeichnis werden kopiert.Wenn Sie angeben
C:\
, gibt der Backslash das "Root" -Verzeichnis an, das auch als "Top Level" -Verzeichnis bezeichnet wird. Das kann mit Ihrem aktuellen Verzeichnis identisch sein oder auch nicht.Wenn Sie nur angeben
DIR \
, wird das aktuelle Laufwerk angenommen. (Sie können so etwas wieC:
oderD:
als ganzen Befehl (in einer eigenen Zeile) eingeben, um zu ändern, welches Laufwerk als "aktuelles Laufwerk" betrachtet wird.) Wenn Sie nur angebenDIR
, werden das aktuelle Laufwerk und das aktuelle Verzeichnis angezeigt angenommen.quelle
TL; DR -
dir C:
listet das aktuelle Verzeichnis auf,C:
egal in welchem Verzeichnis es sich befindet, unddir C:\
nicht immer das\
Stammverzeichnis vonC:
.Lange Geschichte ...
cmd
Erinnert sich an der Eingabeaufforderung an das aktuelle Verzeichnis für jedes Laufwerk, auf das während der Sitzung zugegriffen wurde.Das aktuelle Verzeichnis auf einem
X:
anderen als dem aktuellen Laufwerk kann mitcd X:\etc
(ohne den/d
Schalter, mit dem auch das aktuelle Laufwerk geändert wirdX:
) festgelegt werden und wird voncd X:
(ohne a\
) zurückgegeben - beides wird in dercd /?
Hilfe angegeben:Siehe Warum hat jedes Laufwerk ein eigenes aktuelles Verzeichnis? für den Hintergrund, einschließlich dieses Zitats.
Auf
strange environment variables
die im verlinkten Beitrag verwiesen wird. Was sind diese seltsamen = C: Umgebungsvariablen? kann mitset ""
der Eingabeaufforderung cmd angezeigt werden, zum Beispiel:quelle
c:\Users\<you>
)c:\windows\system32
oderc:\windows\temp
. Gehen Sie jedoch niemals davon aus: Geben Sie immer das Verzeichnis an, in dem Sie sich befinden möchten, oder wechseln Sie zu dem Verzeichnis, in dem Sie sich befinden möchten, anstatt sich darauf zu verlassen, dass ein bestimmter Standard konsistent angewendet wird.Der Grund, warum Sie zwei verschiedene Verzeichnisse erhalten, ist einfach. Das
\
ist der Unterschied.dir C:\
fragt nach der Verzeichnisliste desC
Laufwerks auf seiner\
.\
ist der Stammordner.dir C:
fragt nach dem Verzeichnis, in dem Sie sich befinden (oder zuletzt waren, wenn Sie das Laufwerk gewechselt haben)Wenn Sie auf dem
C
Laufwerk sind und nur tippendir
und drückenenter
, erhalten Sie den gleichen Inhalt vondir C:
. Wenn Sie sich auf einem anderen Laufwerk befinden undC:
auf dasC
Laufwerk zurückwechseln möchten, landen Sie in dem Verzeichnis, das Sie bei der Eingabe gesehen habendir C:
.quelle
Da dies kein StackOverflow ist, sollte dies bestenfalls ein Kommentar sein, der jedoch nicht passt :.
Das .NET Framework (möglicherweise über Win32) gibt das aktuelle Verzeichnis für das aktuelle Laufwerk wieder:
quelle
Sie führen zwei Befehle zusammen aus.
c:
ist selbst ein Befehl zum Wechseln in den vorherigen Speicherort auf dem Laufwerk C :. Es würde also den Speicherort enthalten, bevor Sie die Laufwerke mitd:
oder wechselne:
.dir
ist ein Befehl zum Auflisten des Inhalts eines Verzeichnisses.Sie listen also im Grunde den Inhalt Ihres vorherigen Ordners auf Laufwerk C: auf, obwohl Sie sich auf einem anderen Laufwerk befinden.
quelle