Windowsのcmd.exe(コマンドプロンプト)にも、もちろんcd
(Change Directory)コマンドがある。
そもそもWindowsはディレクトリじゃなくてフォルダだろ、とかそういう話はさておき。←Windowsのディレクトリはディスク上の物理的な保存場所の区切りのことです。
で、このcd
にはいくつか、Linuxなどのbash、zshとの相違点がある。
一つ目は、cd
と引数を何も与えず実行した場合だ。bashなどだと、環境変数HOMEで指定されたディレクトリへ瞬時に移動できて結構便利なのだが、マイクロなんたらがそんな機能を実装しているわけがない。
こんな結果になる。
C:\Users\alucky0707>cd
C:\Users\alucky0707
Qiitaがハイライトに対応していないせいでわかりづらくなっているが、一行目がプロンプト、二行目がその結果だ。
この場合、C:\Users\alucky0707
というディレクトリでcd
を実行した結果、C:\Users\alucky0707
という文字列が返ってきている。
――つまり、無引数のcd
は現在いるディレクトリを返す、ということだ。
cmd.exeを使っていてホームディレクトリ(ユーザーフォルダ)に戻りたくなるシチュエーションがあまり思いつかないが、bashみたいな挙動を期待すると涙をのむことになるので注意。
他には、ドライブ間を移動したいときに、Windowsにはデバイスファイルなんてないので、
C:\Users\alucky0707>cd /d D:
D:\>
のように/d
オプション(奇妙に見えるかもしれないが、cmd.exeやWindowsのコマンド全般のオプションは/
から始まる値として与える)を付けてドライブ名から絶対パスを入力する必要がある。
ちなみに、/d
は/D
でもよくて、さらに/D
のあとに空白が無くても正しく動くので、
C:\Users\alucky0707>cd /DD:
などと打っても期待した動作になる。
あと、これは有名な話だが、Windowsのcmd.exe、というかファイルシステムはアクセス時に大文字小文字を区別しない。これは多分DOS時代の名残なんだろうが、あまりいい仕様ではないと思う。
こればっかりはどうしようもないが。