Windowsコマンドプロンプトでディレクトリコンテキストを別のドライブ(D、E、Fなど)に変更するたびに、"Drive letter":\
コマンドを使用して実際に変更する必要があります。 "cd command" をcd H:\
で試してみると、H:\がエコーされて何も行われません。
そのような行動には何らかの理由がありますか?つまり、これを行うためにcd command
仕事をしませんか?なぜそうではないのですか?
試してください:
cd /d d:
/d
は、ドライブ文字とディレクトリも切り替えます。その他の情報については、cd /?
を参照してください
Windowsがこのように動作するのは、DOSがそのように動作するためです。
DOSでは、各ドライブに独自の現在のディレクトリがあり、cd
コマンドはドライブの現在のディレクトリを変更します。それがたまたま現在のドライブである場合、作業ディレクトリもそれに応じて変更されます。現在のドライブを変更する場合は、ドライブ文字をコマンドとして指定するだけです。
Windowsが実際にこのように動作しないことに注意してください-現在のディレクトリは常に1つしかありません-コマンドShellは非常に長くなりますドライブごとの現在のディレクトリがまだ存在するふりをします。これはおそらく、既存のDOSバッチファイルとの互換性を維持するためです。
DOSがこのように機能する理由は、DOSの最も初期のバージョン、およびその前のCP/Mにまでさかのぼります。残酷な詳細は Raymond Chenのブログ にあります。
正直な答えは、「そのように機能するように書かれていないから」です。単にD:
はあなたがやりたいことをします。
不思議なことにcd D:\somedir
は、実際には、D:の現在のディレクトリを\ dataに変更しますが、現在のコマンドプロンプトをD:に変更しません。