「cd D:」がコマンドコンテキストをD:に変更しないのはなぜですか?[複製]


19

重複の可能性:
Windowsコマンドラインでcdコマンドを使用すると、D:\に移動できない

Windowsコマンドプロンプトでディレクトリコンテキストを別のドライブ(D、E、Fなど)に変更するたびに、"Drive letter":\commandを使用して実際に変更する必要があります。私がしようとすると、「cdコマンド」cd H:\私のために、\と何もしない:それだけHをエコー:

ここに画像の説明を入力してください

そのような動作の理由はありますか?つまり、cd commandこれを実行するのはうまくいかないのですか?どうして?


回答:


28

試してください:

cd /d d:

/d また、ディレクトリだけでなくドライブ文字も切り替えます。その他の情報については、 cd /?


1
この状況では、cmd.exeがDOSの動作を非常によく模倣しているように見えるため、各ドライブの「現在のディレクトリ」が明確に記憶されます。
ローレンス

4
これは、「なぜWidowsがこのように機能するのか」に対する本当の答えです。DOSがそのようにしたからです。
KutuluMike

12

Windowsがこのように動作する理由は、DOSがそのように動作するためです。

DOSでは、各ドライブには独自の現在のディレクトリがあり、cdコマンドはドライブ上の現在のディレクトリを変更します。それが現在のドライブでもある場合、作業ディレクトリはそれに伴って変更されます。現在のドライブを変更する場合は、ドライブ文字をコマンドとして指定するだけです。

Windowsが実際にしないことを注意働くもうこの道を-あなただけの任意の時点で1つのカレントディレクトリを持っている-しかし、コマンドシェルは、現在のディレクトリをドライブごとに、残っていることをふりをする偉大な長さになります。おそらくこれは、既存のDOSバッチファイルとの互換性を維持するためです。

DOSがこのように機能する理由は、DOSの最も初期のバージョン、およびその前のCP / Mにまでさかのぼります。厄介な詳細は、Raymond Chenのブログにあります。


6

簡単な答えは、「そのように動作するように書かれていないため」です。単に入力D:すると、あなたが望むことをします。

奇妙なcd D:\somedirことに、実際には、D:の現在のディレクトリが\ dataに変更されますが、現在のコマンドプロンプトはD:に変更されません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.