web-dev-qa-db-ja.com

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

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

cd D:\

Dドライブに行けない。私が入力しても:

cd D:\<folder name>

command.exeはタブキーで行を自動補完するので、私がどこにいるのかがわかります。結果を画面に表示したり、実際に表示させたりすることはできません。この問題はネットワークドライブにも存在します。

それでは、chdircd)コマンドを次のように使用したとします。

chdir D:またはcd d:

コマンドの下にあるD:\から印刷されますが、それでもC:\にいると表示されます。

単純なものが足りないような気がします。

218
nicorellius

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>
313
coneslayer

コマンドは機能するように設計されているため、didworkとなります。

あなたは単にそれが実際にどのように機能することになっているのかわからない。

あなたはUnixやLinux Shellプログラムを使っていません。 Microsoftのコマンドインタプリタのcdコマンドは、そのようなシェルのcdコマンドのようには動作しません。それはやや異なった振る舞いをします。特に、はディレクトリを常に変更するわけではありません。 UnixおよびLinuxシェルでは、cdは作業ディレクトリを設定するだけです。 Microsoftのコマンドインタプリタでは、cdがそれを問い合わせることがあります。独立したpwdコマンドはないので、cdは2つの仕事をします。

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

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

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

だから、例えば、コマンドライン

cd/d d:

他の方法でコマンドインタプリタプロセスの現在のドライブを変更したい場合は、cdコマンドを使用することはできません。ドライブ文字とコロンを入力するだけです。

d:

参考文献

  • JPソフトウェア(2011) CD/CHDIR TCCオンラインヘルプ。
  • マイクロソフト株式会社(2001) Chdir(CD) 。 TechNet Windows XPコマンドラインリファレンスA〜Z。
76
JdeBP

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

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

windows command Prompt cd

50
Multiverse IT

CDC hangeを表しますD irectory、およびChange Driveではありません。それで、それはDに変わりません:そのように。これを実現するには、単にドライブレターを入力する必要があります

例えば.

d:

20
IUnknown

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

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

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

ボリュームをC:からD:に変更するには、単にドライブ文字を入力します。

C:\>D:
D:\>
9
Andrew Lambert

これを行うにはcd/D D:を使用してください。パスも指定できます。

8
Michael S.

DOSコマンドプロンプトでドライブを変更したい場合は、次のように書くだけです。

[Drive Letter]:

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

D:
5
Darsak

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

ただそれを使う:

pushd D:\Tests\Logs

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

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

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

0
user609712