Windowsコマンドラインでcdコマンドを使用すると、D:\に移動できません


226

これは愚かな質問かもしれ、と私は答えを見つけるために他の場所で見ていると思う...パスの問題かもしれないが、私はからのコマンドラインとタイプを開いたときC:\>

cd D:\

Dドライブにアクセスできません。私がタイプしても:

cd D:\<folder name>

command.exe意志のオートコンプリートTabキーで行なので、私がよどこに知っています。結果をスクリーニングするために印刷したり、実際にそこに着くだけではありません。この問題は、ネットワークドライブにも存在します。

さて、次のようにchdircd)コマンドを使用すると:

chdir D: または cd d:

D:\はコマンドの下から印刷物を取得しますが、それでもまだ私がいると言いC:\ます。

シンプルなものが欠けているような気がします。


私は、このような状況でより良い動作をするので、ほとんどどこでも使用pushdしていcdます。
Goyuix

5
この回答を参照してください " cd / d D: " superuser.com/a/135239/78897
Pacerier 14

1
これを試してください:cd / dd:
DevWL

回答:


324

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

あなたが望むのは簡単です:

D:

ここでは、「各ドライブの個別の現在のディレクトリ」の動作を確認できます。

C:\Users\coneslayer>e:

E:\>c:

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

C:\Users\coneslayer>e:

e:\Software>

16
「西で最速の銃」の状況では、勝者は最高の説明をする人です。+1、同様の回答を削除します。
グヌーピ

2
私も削除しました。余分な混乱は必要ありません。
th3dude

3
-1 a)cd e:\software線が何もしなかったことを指摘していない。そこに幻のCDコマンドを挿入したように、なぜですか?あなたがそうでなかったときにあなたがCDを使っていたと彼に思わせるために?およびb)地球/d上で別のドライブの特定のディレクトリへのCDの有効化について言及できないのはどうしてd:<ENTER>ですか?同様にCDコマンドcd /d d:またはcd /d d:\blah
barlop

3
@barlop cd E:\softwareは何もしません。それは、現在のディレクトリに変更Eパーティションのsoftware最終的にとEパーティションに切り替えたときに実証されているものであるフォルダを、E:。ただし、cd / dを使用することをお勧めします。
miyalys

@miyalys面白いと素晴らしいポイント
-barlop

78

それはやったコマンドが動作するように設計されて、仕事を。

あなたは単にそれが実際にどのように機能するかを知らないだけです。

UnixまたはLinuxシェルプログラムを使用していません。cdMicrosoftのコマンドインタープリターのコマンドは動作しませんcd、このようなシェルのコマンドを実行します。動作が多少異なります。特に、常にdirectoryを変更するとは限りません。UnixおよびLinuxシェルでcdは、作業ディレクトリのみが設定されます。Microsoftのコマンドインタープリターでは、cdクエリを実行する場合があります。個別のpwdコマンドはないため、cd2つのジョブがあります。

引数を指定しない場合、またはドライブ文字とパスなしのコロンのみの引数を指定した場合、現在のディレクトリを変更する代わりにレポートします。引数を指定しない場合、コマンドインタープリタープロセスの現在のドライブの現在のディレクトリが報告されます。引数としてドライブ文字とコロンのみを指定すると、コマンドインタープリタープロセスのそのドライブの現在のディレクトリが報告されます。各ドライブには、コマンドインタープリターに独自の現在のディレクトリがあります。(これは、Microsoftおよび他のいくつかのベンダーのさまざまなプログラミング言語の実装用のランタイムライブラリによって維持されるフィクションです。Win32自体はこのように機能しません。)

したがってd:、引数として指定すると、ドライブDのコマンドインタープリタープロセスの現在のディレクトリが報告されましたD:\。引数をまったく指定しなかった場合は、報告さC:\れていました。

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

したがって、たとえば、コマンドライン

cd / dd:
ドライブD上の現在のディレクトリにディレクトリを変更し、現在のドライブをドライブDに変更します。

コマンドインタープリタープロセスの現在のドライブを変更したい場合は、cdコマンドは道ではありません。これを行うには、単にドライブ文字とコロンを入力します。

d:

参考文献

  • JP Software(2011)。CD / CHDIR TCCオンラインヘルプ。
  • Microsoft Corporation(2001)。Chdir(CD)。TechNet Windows XPコマンドラインリファレンスA〜Z。


3
完全に正しくありません。実行するcd d:\ と、の作業ディレクトリが変更されd:ます。d:\ 後で行う場合はになりますd:\ cd d:\something\something何もしなければ、最初は何も起こりません。しかし、d:\ 後でもう一度やると、あなたの道はd:\something\something"
sinni800

4
いずれも上記の内容と矛盾するものはありませんsinni800(現在のドライブを変更するための構文が間違っているということは別ですが、それは見落とします)。引数にパス名を指定した場合に何が起こるかについての議論は含めませんでした。なぜなら、(a)それは質問の内容ではなく、(b)さらなる読み物にあるからです。
JdeBP

6
いいえ、私たちはそうではありません。ここでは、ドライブではなくパーティションについて説明するのは間違っていますuser unknown。まず、パーティションはボリュームと同じではなく、ドライブ文字はパーティションではなくボリュームにマッピングされます。そして、このレベルの抽象化で話をしているとき、ドライブ文字現在のドライブは、ここで使用されている従来の用語であり、以降の説明やcd /?ヘルプテキストでも使用されています。
JdeBP

2
私は少なくとも20年間このコマンドを使用しており、これを知らなかった。
クリスバランス

54

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

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

Windowsコマンドプロンプトcd


4
+1何か新しいことを学んだからですが、書いたものが間違っているとは思いません。
コーンスレイヤー

3
あなたの答えも正しい、Multiverse ITだが、conslayerは間違っていなかった。あなたの努力に感謝します。この質問について、2つの素晴らしいトリックを学びました。
-nicorellius

2
私の観点からは、「欲しいものは簡単です... D:」は間違っています。はい、それは機能し、目標を達成する有効な方法ですが、厳密に言えば、彼が望むべきことではありません。さらに、コメントの言い回しは、CDを使用してこれを行うことができないことを意味します-その意味は正しくありません。
マルチバースIT

1
彼の主な問題は、「Dドライブにアクセスできない」ことです。そのため、他の答えは正しいです。あなたのソリューションは、単純に1ステップ少なくなります(これは良いことです)。もう一方が間違っているわけではありません。
グヌーピ

1
うーん、「彼が欲しいもの」。かなり推定的に
聞こえます

20

CDは、の略 Cのハンゲの Dの irectory、およびドライブを変更しません。したがって、D:に変更されることはありません。これを実現するには、単にドライブ文字を入力する必要があります

例えば

d:


16
cd / DD:ドライブとディレクトリを変更します...
Michael S.

ただし、d:はドライブではなくパーティションです。
ユーザー不明

1
@userunknownシェルが設計されたDos 1.0時代には、パーティションが分からないフロッピーディスクしかありませんでした。最初のhardriveのサポートは、ドライブのプライマリ(最初の)パーティションに対してのみでした。拡張パーティションのサポートは後まで追加されませんでした。
ダンニーリー

MS-DOS 1.0タグも1.0も言及されていません。MS-DOSプログラムでドライブをパーティション分割することはできませんが、パーティション分割されたドライブにMS-DOSをインストールすることはできます。多くのユーザーがcmd.exeとMS-DOSは同じ意味であると信じているため、MS-DOSはサポート対象外であり、タグが存在すると思います。Apropos:MS-DOS 1.0は決して公開されていません。
ユーザー不明

1
@userunknown設計の決定は、DOSの初期バージョンに遡ります。動作を変更すると、古いプログラムが破損します(以下のDaniel Beckのコメントを参照)。PS; ウィキペディアによると、MS DOS 1.xが公開されました。
ダンニーリー

9

cmd.exeの作業ディレクトリは、volume-by-volume基本的に維持されます。以下のための作業ディレクトリC:のドライブは、作業用ディレクトリとは異なる D:ドライブ。

ドライブ文字のみをに渡すcdと、指定したドライブの作業ディレクトリが印刷されます。

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

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

C:\>D:
D:\>

2
cd / DD:ドライブとディレクトリを変更します...
Michael S.

1
パーティションはドライブ文字にマップされ、実質的にドライブと同じです。ディレクトリまたは共有をドライブにマップすることもできますが、それらは同じように動作します。
マーティフライド


5

DOSコマンドプロンプトでドライブを変更する場合は、次のように記述するだけです。

[Drive Letter]:

たとえば、D:\ドライブに移動する場合は、コマンドプロンプトで次を入力するだけです。

D:

パーティションを変更するには[Drive Letter]:、を信じるか、テストしてください!
ユーザー不明

ああ、それは物事をずっと簡単にします。私はいつも忘れている/dので、これにより切り替えがはるかに速くなります。
Mateen Ulhaq

2

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

それを使用してください:

pushd D:\Tests\Logs

前のディレクトリに戻りたい場合popd

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

0

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

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