Using cd command in Windows command line, can’t navigate to D:

cd command-line path windows

これは愚かなくだらない質問かもしれませんし、答えを見つけるために他の場所を探したと思うのですが…。パスの問題かもしれませんが、コマンドラインを開いてC:\>から入力すると

cd D:\

Dドライブに行けない。タイプしても

cd D:\<folder name>

command.exeはタブキーで行を自動補完してくれるので、自分がどこにいるのかを知っています。ただ、結果を表示するために印刷したり、実際にそこにたどり着いたりすることはありません。この問題はネットワークドライブにも存在します

さて、このようにchdircd)コマンドを使うと

chdir D:またはcd d:の場合

コマンドの下にあるD:\のプリントアウトは出るけど、C:\の中にいるとまだ書いてある

なんか単純に物足りなさを感じます

  261  None  2010-04-27


ベストアンサー

DOSの時代に戻りますが、ドライブごとに別々の「カレントディレクトリ」があります。cd D:\foldername は D: のカレントディレクトリを指定されたフォルダ名に変更しますが、C: ドライブで作業しているという事実は変わりません

欲しいものはシンプルに

D:

ここでは、「各ドライブごとにカレントディレクトリを分ける」ということがどのように機能するかを見ることができます

C:\Users\coneslayer>e:

E:\>c:

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

C:\Users\coneslayer>e:

e:\Software>

364  coneslayer  2010-04-27


コマンドが動作するように設計されているので、動作しました

単に実際にどうやって動くのかを知らないだけでしょう

UnixやLinuxのシェルプログラムを使っているわけではありません。Microsoft のコマンドインタプリタの cd コマンドは、そのようなシェルの cd コマンドのようには動作しません。挙動が多少異なります。特に、常にディレクトリを変更するわけではありません。UnixやLinuxシェルでは、cdは作業ディレクトリを設定するだけです。Microsoftのコマンドインタプリタでは、cdは時々それを問い合わせます。別個のpwdコマンドはないので、cdは二つの仕事をします

引数を与えない場合、またはパスなしのドライブ文字とコロンだけの引数を与えた場合、カレントディレクトリを変更せずに報告します。引数を与えない場合は、コマンドインタプリタプロセスのカレントドライブのカレントディレクトリを報告します。引数にドライブ文字とコロンのみを与えた場合は、そのドライブのカレントディレクトリを報告します。各ドライブは、コマンドインタプリタのカレントディレクトリを持っています。(これは、マイクロソフトや他のいくつかのベンダーの様々なプログラミング言語の実装のためのランタイムライブラリによって維持されているフィクションです。Win32自体はこのようには動作しません)。)

つまり、引数として d: を与えると、D ドライブ上のコマンドインタプリタプロセスのカレントディレクトリが D:\ であることを報告してくれます。もし引数を与えていなければ、C:\を報告していたでしょう

cdコマンドを常にセットモードにして、クエリモードにしないようにしたい場合は、/Dオプションを追加する必要があります。これにより、コマンドは常にセットモードになるように強制され、また、ドライブのカレントディレクトリを変更するだけでなく、カレントドライブを変更するように拡張されます。(言い換えれば、基礎となる Win32 API が実際に行うのと同じように動作するように拡張されています)

そのため、例えば、コマンドライン

cd /d d:

は、ディレクトリをDドライブ上のカレントディレクトリが何であれ、現在のドライブをDドライブに変更します

そうでなければ、コマンドインタプリタプロセスの現在のドライブを変更したい場合は、cdコマンドは方法ではありません。ドライブ文字とコロン:

d:

を入力するだけで変更できます

Further reading

  • JP Software (2011).CD/CHDIR TCC オンラインヘルプ
  • マイクロソフト株式会社 (2001).Chdir (CD).TechNet Windows XP コマンドラインリファレンス A-Z

80  JdeBP  2012-01-19


これは間違っているのではないかと心配です。DOSの時代からそうなのですが、Windows NT以降のコマンドラインはDOSではありません。今では誰もが使っているコマンドラインには/dスイッチがあります。/dスイッチは、指定したドライブのカレントディレクトリを変更して、そのディレクトリに変更します。/dスイッチはパスの前に指定しなければなりません。例えば

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

windows command prompt cd

61  Multiverse IT  2010-04-27


CDはChange Directoryの略で、Change Driveではありません。そのため、そのようにD:に変更されることはありません。これを実現するには、単にドライブの文字を入力する必要があります

e.g.

d:

20  IUnknown  2012-01-19


cmd.exeの作業ディレクトリはvolume-by-volumeベースで管理されており、C:ドライブの作業ディレクトリはD:ドライブの作業ディレクトリとは異なります

cdにドライブ文字のみを渡すと、指定したドライブの作業ディレクトリを表示します

あなたの場合、D:ドライブの作業ディレクトリは、ボリュームルートそのものであるD:\です

ボリュームをC:からD:に変更するには、ドライブ文字を入力するだけです

C:\>D:
D:\>

9  Andrew Lambert  2012-01-19


cd /D D: を使用してください。パスを指定することもできます

9  Michael S.  2012-01-19


DOSコマンドプロンプトでドライブを変更したい場合は、単に書き込むだけです

[Drive Letter]:

例えば、D:\ドライブに移動したい場合は、コマンドプロンプトに以下のように入力するだけです

D:

5  Darsak  2012-01-19


pushdは、D:\Tests\Logsのようにサブディレクトリに移動する必要がある場合でも動作します

そうやって使えばいいんだよ

pushd D:\Tests\Logs

前のディレクトリに戻りたい場合は popd を使用してください

C:\Users>pushd D:\Tests\Logs
D:\Tests\Logs>popd
C:\Users>

2  BladeMight  2016-07-27


あなたは、ツールバーの検索オプションに行くとcmdを検索するか、またはWindowsのすべてのアプリを選択してコマンドプロンプトを選択することによって、それはいくつかの他のコマンドプロンプトにかかりますが。代わりにWindowsボタンを押してみてください + Rとcmdを検索すると、それはC:>ドライブにかかります。そこからD:>または必要な場所に移動することができます

0  user609712  2016-06-23


タイトルとURLをコピーしました