Ça a fonctionné, car la commande est conçue pour fonctionner.
Vous ne savez tout simplement pas comment elle est censée fonctionner.
Vous n'utilisez pas un programme shell Unix ou Linux. La commande cd
dans l'interpréteur de commandes de Microsoft ne se comporte pas comme les commandes cd
dans de tels shells. Elle se comporte quelque peu différemment. En particulier, il ne change pas toujours de répertoire. Dans les shells Unix et Linux, cd
ne définit jamais que le répertoire de travail. Dans l'interpréteur de commandes de Microsoft, cd
l'interroge parfois. Il n'y a pas de commande pwd
séparée, donc cd
fait deux tâches.
Si vous ne lui donnez aucun argument, ou un argument qui est juste une lettre de lecteur et un deux-points sans chemin, alors il signale le répertoire courant au lieu de le changer. Si vous ne lui donnez pas d'arguments, il indique le répertoire courant du lecteur courant du processus d'interprétation de commandes. Si vous ne lui donnez qu'une lettre de lecteur et deux points comme argument, il indique le répertoire courant du processus de l'interpréteur de commandes pour ce lecteur. Chaque lecteur a son propre répertoire courant dans l'interpréteur de commandes. (Il s'agit d'une fiction maintenue par les bibliothèques d'exécution pour les implémentations de divers langages de programmation de Microsoft et de plusieurs autres fournisseurs. Win32 lui-même ne fonctionne pas de cette façon).
Donc, lorsque vous avez donné d:
comme argument, il vous a rapporté le répertoire courant du processus de l'interpréteur de commandes sur le lecteur D, qui se trouve être `D:## Ça a fonctionné, car la commande est conçue pour fonctionner.
Vous ne savez tout simplement pas comment elle est censée fonctionner.
Vous n'utilisez pas un programme shell Unix ou Linux. La commande cd
dans l'interpréteur de commandes de Microsoft ne se comporte pas comme les commandes cd
dans de tels shells. Elle se comporte quelque peu différemment. En particulier, il ne change pas toujours de répertoire. Dans les shells Unix et Linux, cd
ne définit jamais que le répertoire de travail. Dans l'interpréteur de commandes de Microsoft, cd
l'interroge parfois. Il n'y a pas de commande pwd
séparée, donc cd
fait deux tâches.
Si vous ne lui donnez aucun argument, ou un argument qui est juste une lettre de lecteur et un deux-points sans chemin, alors il signale le répertoire courant au lieu de le changer. Si vous ne lui donnez pas d'arguments, il indique le répertoire courant du lecteur courant du processus d'interprétation de commandes. Si vous ne lui donnez qu'une lettre de lecteur et deux points comme argument, il indique le répertoire courant du processus de l'interpréteur de commandes pour ce lecteur. Chaque lecteur a son propre répertoire courant dans l'interpréteur de commandes. (Il s'agit d'une fiction maintenue par les bibliothèques d'exécution pour les implémentations de divers langages de programmation de Microsoft et de plusieurs autres fournisseurs. Win32 lui-même ne fonctionne pas de cette façon).
Donc, lorsque vous avez donné d:
comme argument, il vous a rapporté le répertoire courant du processus de l'interpréteur de commandes sur le lecteur D, qui se trouve être . Si vous ne lui aviez donné aucun argument, il vous aurait signalé `C:## Ça a fonctionné, car la commande est conçue pour fonctionner.
Vous ne savez tout simplement pas comment elle est censée fonctionner.
Vous n'utilisez pas un programme shell Unix ou Linux. La commande cd
dans l'interpréteur de commandes de Microsoft ne se comporte pas comme les commandes cd
dans de tels shells. Elle se comporte quelque peu différemment. En particulier, il ne change pas toujours de répertoire. Dans les shells Unix et Linux, cd
ne définit jamais que le répertoire de travail. Dans l'interpréteur de commandes de Microsoft, cd
l'interroge parfois. Il n'y a pas de commande pwd
séparée, donc cd
fait deux tâches.
Si vous ne lui donnez aucun argument, ou un argument qui est juste une lettre de lecteur et un deux-points sans chemin, alors il signale le répertoire courant au lieu de le changer. Si vous ne lui donnez pas d'arguments, il indique le répertoire courant du lecteur courant du processus d'interprétation de commandes. Si vous ne lui donnez qu'une lettre de lecteur et deux points comme argument, il indique le répertoire courant du processus de l'interpréteur de commandes pour ce lecteur. Chaque lecteur a son propre répertoire courant dans l'interpréteur de commandes. (Il s'agit d'une fiction maintenue par les bibliothèques d'exécution pour les implémentations de divers langages de programmation de Microsoft et de plusieurs autres fournisseurs. Win32 lui-même ne fonctionne pas de cette façon).
Donc, lorsque vous avez donné d:
comme argument, il vous a rapporté le répertoire courant du processus de l'interpréteur de commandes sur le lecteur D, qui se trouve être `D:## Ça a fonctionné, car la commande est conçue pour fonctionner.
Vous ne savez tout simplement pas comment elle est censée fonctionner.
Vous n'utilisez pas un programme shell Unix ou Linux. La commande cd
dans l'interpréteur de commandes de Microsoft ne se comporte pas comme les commandes cd
dans de tels shells. Elle se comporte quelque peu différemment. En particulier, il ne change pas toujours de répertoire. Dans les shells Unix et Linux, cd
ne définit jamais que le répertoire de travail. Dans l'interpréteur de commandes de Microsoft, cd
l'interroge parfois. Il n'y a pas de commande pwd
séparée, donc cd
fait deux tâches.
Si vous ne lui donnez aucun argument, ou un argument qui est juste une lettre de lecteur et un deux-points sans chemin, alors il signale le répertoire courant au lieu de le changer. Si vous ne lui donnez pas d'arguments, il indique le répertoire courant du lecteur courant du processus d'interprétation de commandes. Si vous ne lui donnez qu'une lettre de lecteur et deux points comme argument, il indique le répertoire courant du processus de l'interpréteur de commandes pour ce lecteur. Chaque lecteur a son propre répertoire courant dans l'interpréteur de commandes. (Il s'agit d'une fiction maintenue par les bibliothèques d'exécution pour les implémentations de divers langages de programmation de Microsoft et de plusieurs autres fournisseurs. Win32 lui-même ne fonctionne pas de cette façon).
Donc, lorsque vous avez donné d:
comme argument, il vous a rapporté le répertoire courant du processus de l'interpréteur de commandes sur le lecteur D, qui se trouve être . Si vous ne lui aviez donné aucun argument, il vous aurait signalé .
Si vous voulez que la commande cd
soit toujours en mode set et jamais en mode query, vous devez lui ajouter l'option /D
. Cela oblige la commande à toujours être en mode set, et l'étend également de manière à ce qu'elle modifie le lecteur actuel ainsi que le répertoire courant d'un lecteur. (En d'autres termes, cela fonctionne plus comme l'API Win32 sous-jacente).
Ainsi, par exemple, la ligne de commande
cd /d d:
changera de répertoire pour le répertoire courant du lecteur D, et changera également le lecteur courant pour le lecteur D.
Si vous voulez changer le lecteur courant du processus d'interprétation de commandes autrement, la commande cd
n'est pas la solution. Pour ce faire, il suffit de taper la lettre du lecteur et deux points :
d:
Lectures complémentaires
- JP Software (2011). CD/CHDIR TCC On-line Help,
- Microsoft corporation (2001). Chdir (CD) . TechNet Windows XP Référence de la ligne de commande A-Z.