J'ai accidentellement découvert que si je le fais:
dir C:\
J'obtiens une liste de fichiers qui sont des enfants directs du lecteur C:, à la racine.
Cependant, si je le fais:
dir C:
Je reçois une énorme liste de fichiers dont je ne sais même pas où ils se trouvent (DLL, EXE, CPL, etc.).
Savez-vous pourquoi cela se produit et d'où vient cette liste?
dir c:
renvoie la liste des fichiers dans votre répertoire actuelRéponses:
La spécification
DIR location
vous montrera le contenu de l'emplacement.La spécification
C:
de nombreuses commandes, y compris laDIR
commande, fait référence au lecteur C et fait référence au répertoire en cours. Pour voir votre répertoire actuel, tapez ceci:La
cd
commande est généralement utilisée pour modifier le répertoire en cours. Cependant, dans MS-DOS (et les systèmes d'exploitation similaires, y compris Microsoft Windows moderne, mais pas Unix), le fonctionnementcd
en lui-même vous montrera le répertoire actuel.Selon toute probabilité, si vous n'avez pas utilisé la
cd
commande, votre répertoire actuel est probablement le répertoire dans lequel votre système d'exploitation a été installé. (Du moins, c'est un comportement courant pour les systèmes Microsoft Windows.)Tu peux le faire:
Cela vous montrera le contenu de
C:\Program Files
De même, vous pouvez faire quelque chose comme:
copy C:*.*
et tout le contenu du répertoire courant sera copié.Lorsque vous spécifiez
C:\
, la barre oblique inverse indique le répertoire "racine", également appelé répertoire "de niveau supérieur". Cela peut ou non être la même chose que votre répertoire actuel.Si vous spécifiez simplement
DIR \
, le lecteur actuel sera supposé. (Vous pouvez taper quelque chose commeC:
ouD:
, en tant que commande entière (sur une ligne seule), pour changer le lecteur considéré comme le "lecteur actuel".) Si vous spécifiez simplementDIR
, le lecteur actuel et le répertoire actuel seront assumé.la source
TL; DR -
dir C:
listera le répertoire courant surC:
tout ce qui se trouve, par opposition àdir C:\
qui listera toujours la\
racine deC:
.Longue histoire ... À l'invite de ligne de commande, se
cmd
souvient du répertoire actuel pour chaque lecteur auquel il a accédé pendant la session.Le répertoire en cours sur un lecteur
X:
autre que le lecteur en cours peut être défini aveccd X:\etc
(sans le/d
commutateur qui changerait également le lecteur en coursX:
) et est renvoyé parcd X:
(sans a\
) - tous deux indiqués dans l'cd /?
aide:Voir Pourquoi chaque lecteur possède-t-il son propre répertoire actuel? pour le fond, y compris cette citation.
Le
strange environment variables
référencé dans le post lié Quelles sont ces variables d'environnement étranges = C:? peut être vu avecset ""
à l'invite cmd, par exemple:la source
c:\Users\<you>
),c:\windows\system32
soitc:\windows\temp
. Cependant, ne supposez jamais rien de tout cela: indiquez toujours le répertoire que vous souhaitez consulter ou basculez vers celui-ci au lieu de vous fier à l'application par défaut d'un défaut particulier.La raison pour laquelle vous obtenez deux répertoires différents est simple. C'est
\
la différence.dir C:\
demande la liste des répertoires duC
lecteur à son emplacement\
.\
est le dossier racine.dir C:
demande la liste du répertoire où vous vous trouvez (ou était le dernier, si vous avez changé de lecteur)Si vous êtes sur le
C
lecteur et que vous tapezdir
et appuyezenter
, vous obtiendrez le même contenudir C:
. Si vous êtes sur un autre lecteur et tapezC:
pour revenir auC
lecteur, vous vous retrouverez dans le répertoire que vous avez vu lorsque vous avez tapédir C:
.la source
Comme ce n'est pas StackOverflow, cela ne devrait être qu'un commentaire, au mieux, mais cela ne correspond pas:.
Le .NET Framework (peut - être via Win32) ne reflète le répertoire courant pour le lecteur en cours:
la source
Vous exécutez deux commandes ensemble.
c:
est en soi une commande pour passer à l'emplacement précédent sur le lecteur C :. Il conserverait donc l'emplacement avant de changer de lecteur à l'aide ded:
oue:
.dir
est une commande utilisée pour répertorier le contenu d'un répertoire.Donc, fondamentalement, vous répertoriez le contenu de votre dossier précédent sur le lecteur C: même si vous êtes sur un autre lecteur.
la source