À l'aide de la commande cd dans la ligne de commande Windows, vous ne pouvez pas accéder à D: \

226

C'est peut-être une question stupide, et je pense avoir cherché ailleurs pour trouver la réponse ... Peut-être un problème de chemin, mais lorsque j'ouvre la ligne de commande et tape à partir de C:\>:

cd D:\

Je n'arrive pas à accéder au lecteur D. Même si je tape:

cd D:\<folder name>

Le command.execomplétera automatiquement la ligne avec la touche de tabulation, ainsi il saura où je suis. Cela n'imprime tout simplement pas le résultat ou ne m'y amène pas. Ce problème existe aussi pour les lecteurs réseau.

Maintenant, si j'utilise la commande chdir( cd) comme ceci:

chdir D: ou cd d:

Je reçois l’empreinte du D:\dessous de la commande mais elle dit toujours que je suis dans le fichier C:\.

Je sens que je manque quelque chose de simple.

Nicorellius
la source
J'ai utilisé pushdà la place de cdpresque partout car il se comporte beaucoup mieux dans des situations comme celle-ci.
Goyuix le
5
Voir cette réponse " cd / d D: " superuser.com/a/135239/78897
Pacerier
1
Essayez ceci: cd / dd:
DevWL

Réponses:

324

Pour revenir à l'époque du DOS, il existe un "répertoire actuel" distinct pour chaque lecteur. cd D:\foldernamechange le répertoire actuel de D: en le nom de dossier spécifié, mais ne change pas le fait que vous travaillez toujours sur le C:lecteur.

Ce que tu veux est simple:

D:

Ici vous pouvez voir comment fonctionne le "Répertoire en cours séparé pour chaque lecteur":

C:\Users\coneslayer>e:

E:\>c:

C:\Users\coneslayer>cd e:\software

C:\Users\coneslayer>e:

e:\Software>
coneslayer
la source
16
Dans une situation de "canon le plus rapide à l'ouest", le gagnant est celui qui fournit la meilleure explication. +1 et j'efface ma réponse similaire.
Gnoupi
2
Supprimé le mien aussi. Pas besoin de l'encombrement supplémentaire.
Th3dude
3
-1 a) tu n'as pas fait remarquer que la cd e:\softwareligne n'a rien fait. Comme si vous aviez bloqué une commande CD fantôme là-dedans Pourquoi? Pour lui faire croire que vous utilisiez un CD alors que vous ne l'étiez pas? et b) comment diable peut - on pas parler /dpermettant CDing à un répertoire particulier sur un autre lecteur , il a dit en utilisant la commande cd si bien qu'il est bon que vous l' avez dit il comment il peut se faire sans la commande CD d:<ENTER>, vous devriez avoir mentionné pour la commande de CD aussi bien cd /d d:oucd /d d:\blah
barlop
3
@barlop cd E:\softwarene fait rien. Il change le répertoire courant de la partition E au softwaredossier, qui est ce qui est démontré quand enfin le passage à la partition E avec E:. Bonne suggestion avec cd / d cependant.
miyalys
@ myyalys intéressant et bon point
barlop
78

Cela a fonctionné, car la commande est conçue pour fonctionner.

Vous ne savez tout simplement pas comment cela est censé fonctionner.

Vous n'utilisez pas de programme shell Unix ou Linux. La cdcommande de l'interpréteur de commandes de Microsoft ne se comporte pas comme les cdcommandes de tels shells. Il se comporte un peu différemment. En particulier, il ne change pas toujours de répertoire . Dans les shells Unix et Linux, cdseul le répertoire de travail est défini. Dans l'interpréteur de commandes de Microsoft, l' cdinterroge parfois. Il n'y a pas de pwdcommande séparée , donc cddeux tâches.

Si vous ne lui donnez pas d'argument, ou si l'argument est juste une lettre de lecteur et un signe deux-points sans chemin, il enregistre le répertoire en cours au lieu de le modifier . Si vous ne lui donnez pas d'argument, il indique le répertoire en cours du lecteur en cours du processus d'interpréteur de commandes. Si vous lui donnez uniquement une lettre de lecteur et un caractère deux-points comme argument, il indique le répertoire en cours du processus interpréteur de commandes de ce lecteur. Chaque lecteur a son propre répertoire actuel dans l'interpréteur de commandes. (Il s'agit d'une fiction gérée par les bibliothèques d'exécution pour les implémentations de divers langages de programmation par Microsoft et plusieurs autres fournisseurs. Win32 lui-même ne fonctionne pas de cette façon.)

Ainsi, lorsque vous l'avez d:indiqué sous forme d'argument, il vous a signalé le répertoire en cours du processus interpréteur de commandes sur le lecteur D, qui s'est avéré être D:\. Si vous ne lui aviez donné aucun argument, cela vous aurait été rapporté C:\.

Si vous souhaitez que la cdcommande soit toujours en mode de réglage et ne soit jamais en mode de requête, vous devez lui ajouter l' /Doption. Cela oblige la commande à toujours être en mode de réglage et l’étend également de sorte qu’elle modifie le lecteur en cours ainsi que le répertoire en cours d’un lecteur. (En d'autres termes, cela fonctionne plus comme le fait réellement l'API Win32 sous-jacente.)

Ainsi, par exemple, la ligne de commande

cd / dd:
changera de répertoire en quel que soit le répertoire actuel sur le lecteur D, et changera également le lecteur actuel en lecteur D.

Si vous voulez changer le lecteur actuel du processus d'interpréteur de commandes, la cdcommande n'est pas la solution. Vous le faites simplement en tapant la lettre de lecteur et un deux-points:

ré:

Lectures complémentaires

  • Logiciel JP (2011). Aide en ligne du CDC / CHDIR TCC.
  • Société Microsoft (2001). Chdir (CD) . TechNet Windows XP Référence de ligne de commande A – Z.
JdeBP
la source
3
Pas tout à fait raison. Si vous faites cd d:\ cela change le répertoire de travail sur d:. Si vous le faites d:\ après, ce sera à d:\ . Si vous faites cd d:\something\somethingrien ne se passera au début. Mais si vous le faites d:\ encore une fois, votre chemin sera d:\something\something"!
Sinni800
4
Rien de ce qui contredit ce qui est écrit ci-dessus de quelque manière que ce soit sinni800(mis à part le fait que vous obtenez la syntaxe pour changer le lecteur en cours, c'est-à-dire, mais je vais l'ignorer). Je n'ai pas inclus de discussion sur ce qui se passe quand un nom de chemin est fourni dans un argument car (a) ce n'est pas le sujet de la question et (b) c'est dans la suite de la lecture.
JdeBP
6
Non, nous ne sommes pas. Il serait faux de parler de partitions au lieu de disques ici user unknown. Pour commencer, les partitions ne sont pas identiques aux volumes et les lettres de lecteur sont mappées sur des volumes et non sur des partitions. Et quand on parle à ce niveau d'abstraction, lettre de lecteur et lecteur actuel sont les termes conventionnels, tels qu'ils sont utilisés ici, dans les lectures complémentaires indiquées, et même dans le cd /?texte d'aide.
JdeBP
2
J'ai utilisé cette commande pendant au moins 20 ans et je ne l'ai jamais su.
Chris Ballance
54

J'ai peur que ce soit incorrect. C’est vrai depuis le temps du DOS, mais la ligne de commande dans Windows NT et plus tard n’est pas DOS. Dans la ligne de commande que tout le monde utilise aujourd'hui, vous avez le commutateur / D. Le commutateur / d modifiera le répertoire en cours du lecteur spécifié ET basculera vers ce répertoire. Le commutateur / d doit être spécifié avant le chemin. Par exemple:

C:\> cd /d D:\foo\bar\
D:\foo\bar\>

invite de commande windows cd

Multiverse IT
la source
4
+1 parce que j'ai appris quelque chose de nouveau, mais je ne pense pas que tout ce que j'ai écrit soit incorrect.
coneslayer
3
Votre réponse est également correcte, Multiverse IT, mais coneslayer n’est pas incorrect. Merci pour vos efforts. J'ai appris deux grandes astuces sur cette question.
nicorellius
2
De mon point de vue "Ce que vous voulez est simple ... D:" est incorrect. Oui, cela fonctionne et constitue une méthode valable pour atteindre l'objectif, mais ce n'est pas, à proprement parler, ce qu'il devrait vouloir. De plus, la façon dont le commentaire est rédigé implique que vous ne pouvez pas utiliser un CD pour le faire - cette implication est incorrecte.
Multiverse IT
1
Son problème principal est de "Je ne peux pas accéder au lecteur D." En tant que tel, l'autre réponse est correcte. Votre solution prend simplement une étape de moins (ce qui est bien). Cela ne rend pas l'autre incorrect.
Gnoupi
1
Hmm, "ce qu'il devrait vouloir."
Cela
20

CD signifie C hange D irectory, et non Change Drive. Donc, cela ne changerait pas en D: comme ça. Pour ce faire, il vous suffit de taper la lettre du lecteur.

par exemple

ré:

IUnknown
la source
16
cd / DD: changements de lecteurs et de répertoires ...
Michael S.
Mais d: est une partition, pas un lecteur.
utilisateur inconnu le
1
@userunknown À l'époque de Dos 1.0, lorsque le shell a été conçu, il n'y avait que des disquettes pour lesquelles AFAIK ne peut pas être partitionné. La prise en charge matérielle initiale s’appliquait uniquement à la première (première) partition du lecteur. Le support de partition étendu n'a été ajouté que plus tard.
Dan Neely
Je ne vois pas une balise MS-DOS 1.0, ni 1.0 mentionné. Peut-être que vous ne pouvez pas partitionner un lecteur avec des programmes MS-DOS, mais vous pouvez installer un MS-DOS sur un lecteur partitionné. Je suppose que MS-DOS n’est plus supporté et que la balise est présente, car de nombreux utilisateurs pensent que cmd.exe et MS-DOS ont le même sens, ce qui est une autre erreur à résoudre. À propos: MS-DOS 1.0 n'a jamais été publié.
utilisateur inconnu le
1
@userunknown Les décisions de conception remontent aux versions initiales de DOS. Changer de comportement aurait brisé les anciens programmes (voir le commentaire de Daniel Beck ci-dessous). PS; selon Wikipedia, MS DOS 1.x a été publié.
Dan Neely
9

Le répertoire de travail dans cmd.exe est maintenu sur une volume-by-volumebase; le répertoire de travail du C:lecteur est différent du répertoire de travail du D:lecteur.

Lorsque vous ne transmettez qu'une lettre de lecteur à cd, le répertoire de travail du lecteur spécifié est imprimé.

Dans votre cas, le répertoire de travail du D:lecteur est la racine du volume lui-même D:\.

Pour modifier les volumes de C:à D:simplement entrer la lettre de lecteur:

C:\>D:
D:\>
Andrew Lambert
la source
2
cd / DD: changements de lecteurs et de répertoires ...
Michael S.
1
Les partitions sont mappées sur une lettre de lecteur et sont pratiquement identiques à celles d'un lecteur. Vous pouvez également mapper un répertoire ou un partage sur un lecteur et ils se comportent de la même manière.
Marty Fried
8

Utilisez cd / DD: pour ce faire. Vous pouvez également spécifier des chemins.

Michael S.
la source
5

Si vous voulez changer de lecteur dans une invite de commande DOS, vous devez simplement écrire:

[Drive Letter]:

Par exemple, si vous souhaitez déplacer le lecteur D: \, il vous suffit de saisir ce qui suit dans une invite de commande:

D:
Darsak
la source
Vous changez la partition avec [Drive Letter]:, croyez-moi ou testez-la!
utilisateur inconnu le
Oh wow, ça rend les choses beaucoup plus faciles. J'oublie toujours le /dfait que cela rend la commutation beaucoup plus rapide.
Mateen Ulhaq
2

pushdfonctionne même lorsque vous devez accéder à un sous-répertoire, par exemple D:\Tests\Logs.

Utilisez-le simplement pour:

pushd D:\Tests\Logs

Si vous voulez revenir au répertoire précédent, utilisez popd:

C:\Users>pushd D:\Tests\Logs
D:\Tests\Logs>popd
C:\Users>
BladeMight
la source
0

Lorsque vous allez rechercher une option dans la barre d’outils et recherchez cmd ou en sélectionnant Toutes les applis, sélectionnez l’invite de commande, puis une autre invite de commande apparaît. Au lieu de cela, essayez d’appuyer sur le bouton Windows + R et recherchez cmd pour C:> lecteur. De là, vous pouvez naviguer vers D:> ou n'importe où vous avez besoin

utilisateur609712
la source